diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 69e51c6..1d06033 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,6 +138,7 @@ if(DEMO_BUILD_TESTS) endif() option(DEMO_BUILD_TOOLS "Build tools" OFF) + if(DEMO_BUILD_TOOLS) add_executable(spectool tools/spectool.cc @@ -161,4 +162,46 @@ if(DEMO_BUILD_TOOLS) tools/specview.cc ) target_include_directories(specview PRIVATE src) -endif()
\ No newline at end of file + + 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) + +add_custom_command( + OUTPUT ${GENERATED_ASSETS_H} ${GENERATED_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 tools/asset_packer.cc ${ASSETS_TXT_PATH} + COMMENT "Generating assets.h and assets_data.cc" +) + +add_custom_target(generate_assets ALL + DEPENDS ${GENERATED_ASSETS_H} ${GENERATED_ASSETS_DATA_CC} +) + +add_executable(demo64k + src/main.cc + src/platform.cc + src/gpu/gpu.cc + src/audio/audio.cc + src/audio/fdct.cc + src/audio/idct.cc + src/audio/window.cc + src/audio/synth.cc + third_party/glfw3webgpu/glfw3webgpu.c + ${GENERATED_ASSETS_DATA_CC} +) + +# Ensure demo64k depends on the generated assets +add_dependencies(demo64k generate_assets) + +target_link_libraries(demo64k PRIVATE ${DEMO_LIBS}) + +# Include generated assets header for compilation +target_include_directories(demo64k PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src)
\ No newline at end of file |
