aboutsummaryrefslogtreecommitdiff
path: root/cmake/txt2c.txt
blob: 0cb11a9ff3764899d6419e784bc0a021575ef304 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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()