diff options
| author | Hannes Schulze <haschu0103@outlook.de> | 2025-02-01 14:21:04 +0100 |
|---|---|---|
| committer | Hannes Schulze <haschu0103@outlook.de> | 2025-02-01 14:29:12 +0100 |
| commit | bf88e17d552d85cd18bc31757ef9d73049b327c4 (patch) | |
| tree | bf46e60bef0fc2247c44cf2291fbfa38765a7b98 /tools/generate-tiles/CMakeLists.txt | |
| parent | cbde52a60605a4fe853d3a3562b2a059e2143e6e (diff) | |
implement text rendering
Diffstat (limited to 'tools/generate-tiles/CMakeLists.txt')
| -rw-r--r-- | tools/generate-tiles/CMakeLists.txt | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tools/generate-tiles/CMakeLists.txt b/tools/generate-tiles/CMakeLists.txt new file mode 100644 index 0000000..fc7d7f0 --- /dev/null +++ b/tools/generate-tiles/CMakeLists.txt @@ -0,0 +1,43 @@ +add_executable(nes_tool_generate_tiles) + +target_include_directories(nes_tool_generate_tiles PRIVATE .) +target_include_directories(nes_tool_generate_tiles SYSTEM PRIVATE third-party) +target_link_libraries(nes_tool_generate_tiles PRIVATE nes::options) + +target_sources(nes_tool_generate_tiles PRIVATE main.cc) + +function(nes_generate_tiles TARGET_NAME NAME) + cmake_parse_arguments(ARGS "" "TYPE" "FILES" ${ARGN}) + if(NOT DEFINED ARGS_TYPE) + message(FATAL_ERROR "nes_generate_tiles: Missing TYPE") + endif() + if(NOT DEFINED ARGS_FILES) + message(FATAL_ERROR "nes_generate_tiles: Missing FILES") + endif() + + set(CODEGEN_TARGET "nes_tiles_${NAME}") + set(CODEGEN_BASE "${CMAKE_CURRENT_BINARY_DIR}/generated") + set(CODEGEN_DIR "${CODEGEN_BASE}/nes/app/graphics/tiles") + set(CODEGEN_SOURCE "${CODEGEN_DIR}/${NAME}.cc") + set(CODEGEN_HEADER "${CODEGEN_DIR}/${NAME}.hh") + file(MAKE_DIRECTORY "${RESOURCES_INCLUDE_DIR}") + + add_custom_command( + OUTPUT "${CODEGEN_SOURCE}" "${CODEGEN_HEADER}" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + COMMAND nes_tool_generate_tiles + ARGS + "${ARGS_TYPE}" + "${CODEGEN_HEADER}" + "${CODEGEN_SOURCE}" + ${ARGS_FILES} + VERBATIM + DEPENDS ${ARGS_FILES}) + + add_custom_target(${CODEGEN_TARGET} DEPENDS "${CODEGEN_SOURCE}" "${CODEGEN_HEADER}") + target_include_directories(${TARGET_NAME} PRIVATE "${CODEGEN_BASE}") + target_sources(${TARGET_NAME} PRIVATE "${CODEGEN_SOURCE}" "${CODEGEN_HEADER}") + set_source_files_properties("${CODEGEN_SOURCE}" PROPERTIES GENERATED TRUE) + set_source_files_properties("${CODEGEN_HEADER}" PROPERTIES GENERATED TRUE) + add_dependencies(${TARGET_NAME} ${CODEGEN_TARGET}) +endfunction()
\ No newline at end of file |
