diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 54 |
1 files changed, 37 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e95c4dc..9217864 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,28 +59,45 @@ endif() option(DEMO_BUILD_TOOLS "Build tools" OFF) -# Asset Packing Tool (needed during build if any assets exist) +# Asset Packing Tool if(DEMO_BUILD_TOOLS OR NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/src/assets_data.cc) add_executable(asset_packer tools/asset_packer.cc ) endif() -# Configure asset generation -set(ASSETS_TXT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/assets.txt) -set(GENERATED_ASSETS_H ${CMAKE_CURRENT_BINARY_DIR}/src/assets.h) -set(GENERATED_ASSETS_DATA_CC ${CMAKE_CURRENT_BINARY_DIR}/src/assets_data.cc) +# Configure DEMO asset generation +set(DEMO_ASSETS_TXT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/demo_assets.txt) +set(GENERATED_DEMO_ASSETS_H ${CMAKE_CURRENT_BINARY_DIR}/src/assets.h) +set(GENERATED_DEMO_ASSETS_DATA_CC ${CMAKE_CURRENT_BINARY_DIR}/src/assets_data.cc) add_custom_command( - OUTPUT ${GENERATED_ASSETS_H} ${GENERATED_ASSETS_DATA_CC} + OUTPUT ${GENERATED_DEMO_ASSETS_H} ${GENERATED_DEMO_ASSETS_DATA_CC} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src - COMMAND asset_packer ${ASSETS_TXT_PATH} ${GENERATED_ASSETS_H} ${GENERATED_ASSETS_DATA_CC} - DEPENDS asset_packer ${ASSETS_TXT_PATH} - COMMENT "Generating assets.h and assets_data.cc" + COMMAND asset_packer ${DEMO_ASSETS_TXT_PATH} ${GENERATED_DEMO_ASSETS_H} ${GENERATED_DEMO_ASSETS_DATA_CC} + DEPENDS asset_packer ${DEMO_ASSETS_TXT_PATH} + COMMENT "Generating demo assets.h and assets_data.cc" ) -add_custom_target(generate_assets ALL - DEPENDS ${GENERATED_ASSETS_H} ${GENERATED_ASSETS_DATA_CC} +add_custom_target(generate_demo_assets ALL + DEPENDS ${GENERATED_DEMO_ASSETS_H} ${GENERATED_DEMO_ASSETS_DATA_CC} +) + +# Configure TEST asset generation +set(TEST_ASSETS_TXT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/test_assets_list.txt) +set(GENERATED_TEST_ASSETS_H ${CMAKE_CURRENT_BINARY_DIR}/src/test_assets.h) +set(GENERATED_TEST_ASSETS_DATA_CC ${CMAKE_CURRENT_BINARY_DIR}/src/test_assets_data.cc) + +add_custom_command( + OUTPUT ${GENERATED_TEST_ASSETS_H} ${GENERATED_TEST_ASSETS_DATA_CC} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src + COMMAND asset_packer ${TEST_ASSETS_TXT_PATH} ${GENERATED_TEST_ASSETS_H} ${GENERATED_TEST_ASSETS_DATA_CC} + DEPENDS asset_packer ${TEST_ASSETS_TXT_PATH} + COMMENT "Generating test assets.h and assets_data.cc" +) + +add_custom_target(generate_test_assets + DEPENDS ${GENERATED_TEST_ASSETS_H} ${GENERATED_TEST_ASSETS_DATA_CC} ) # Main Demo Target @@ -95,10 +112,10 @@ add_executable(demo64k src/audio/synth.cc src/util/asset_manager.cc third_party/glfw3webgpu/glfw3webgpu.c - ${GENERATED_ASSETS_DATA_CC} + ${GENERATED_DEMO_ASSETS_DATA_CC} ) -add_dependencies(demo64k generate_assets) +add_dependencies(demo64k generate_demo_assets) target_link_libraries(demo64k PRIVATE ${DEMO_LIBS}) target_include_directories(demo64k PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src) @@ -157,10 +174,12 @@ if(DEMO_BUILD_TESTS) add_executable(test_assets src/tests/test_assets.cc src/util/asset_manager.cc - ${GENERATED_ASSETS_DATA_CC} + ${GENERATED_TEST_ASSETS_DATA_CC} ) target_include_directories(test_assets PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src src) - add_dependencies(test_assets generate_assets) + add_dependencies(test_assets generate_test_assets) + # Ensure test_assets also has access to the generated header via its unique name + set_source_files_properties(src/tests/test_assets.cc PROPERTIES COMPILE_DEFINITIONS "USE_TEST_ASSETS") add_test(NAME AssetManagerTest COMMAND test_assets) endif() @@ -192,8 +211,9 @@ endif() # Final assembly target (strip and pack) add_custom_target(final + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/gen_assets.sh COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/crunch_demo.sh DEPENDS demo64k - COMMENT "Performing final assembly (crunching)..." + COMMENT "Generating assets and performing final assembly (crunching)..." WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) +)
\ No newline at end of file |
