From bf88e17d552d85cd18bc31757ef9d73049b327c4 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Sat, 1 Feb 2025 14:21:04 +0100 Subject: implement text rendering --- tools/generate-tiles/CMakeLists.txt | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tools/generate-tiles/CMakeLists.txt (limited to 'tools/generate-tiles/CMakeLists.txt') 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 -- cgit v1.3.1