Files
padlab/cmake/BinHelper.cmake
2023-01-19 02:18:33 +11:00

30 lines
920 B
CMake

include(CMakeParseArguments) # 3.4 and lower compatibility
find_package(Python REQUIRED COMPONENTS Interpreter)
function (bin2h_compile)
set(oneValueArgs OUTPUT)
set(multiValueArgs BIN TXT)
cmake_parse_arguments(ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
find_file(BIN2H_EXECUTABLE bin2h.py PATHS ${CMAKE_SOURCE_DIR}/tools)
set(DEPENDS)
set(COMMAND ${BIN2H_EXECUTABLE})
foreach (BIN ${ARGS_BIN})
set(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${BIN})
list(APPEND DEPENDS ${SOURCE})
list(APPEND COMMAND "-b" "${SOURCE}")
endforeach()
foreach (TXT ${ARGS_TXT})
set(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${TXT})
list(APPEND DEPENDS ${SOURCE})
list(APPEND COMMAND "-t" "${SOURCE}")
endforeach()
list(APPEND COMMAND ${ARGS_OUTPUT})
add_custom_command(COMMAND Python::Interpreter ARGS ${COMMAND}
DEPENDS Python::Interpreter ${BIN2H_EXECUTABLE} ${DEPENDS}
OUTPUT ${ARGS_OUTPUT})
endfunction()