function(txt2c target) set(BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${target}") file(MAKE_DIRECTORY ${BUILD_DIR}) message(${BUILD_DIR}) set(TEXT_FILES) set(SOURCE_FILES) set(INCLUDE_DIRECTORIES) foreach(filepath IN ITEMS ${ARGN}) set(textfile "${CMAKE_CURRENT_SOURCE_DIR}/${filepath}") list(APPEND TEXT_FILES ${textfile}) set(srcfile "${BUILD_DIR}/${filepath}.c") list(APPEND SOURCE_FILES ${srcfile}) get_filename_component(include_dir ${srcfile} DIRECTORY) list(APPEND INCLUDE_DIRECTORIES ${include_dir}) endforeach() foreach(filepath IN ITEMS ${TEXT_FILES}) message(${filepath}) endforeach() foreach(filepath IN ITEMS ${SOURCE_FILES}) message(${filepath}) endforeach() foreach(filepath IN ITEMS ${INCLUDE_DIRECTORIES}) message(${filepath}) endforeach() add_custom_command(OUTPUT ${SOURCE_FILES} COMMAND "${PROJECT_SOURCE_DIR}/bin/txt2c.py" ${TEXT_FILES} ${SOURCE_FILES} WORKING_DIRECTORY ${BUILD_DIR} DEPENDS ${ARGN} COMMENT "Generating ${target}") add_library(${target} ${SOURCE_FILES}) target_include_directories(${target} PUBLIC ${BUILD_DIR} ${INCLUDE_DIRECTORIES}) endfunction()