diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 64 |
1 files changed, 59 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a779fc..2bf4d4a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,7 +83,7 @@ elseif (NOT DEMO_CROSS_COMPILE_WIN32) endif() #-- - Source Groups -- - -set(AUDIO_SOURCES src/audio/audio.cc src/audio/ring_buffer.cc src/audio/miniaudio_backend.cc src/audio/wav_dump_backend.cc src/audio/gen.cc src/audio/fdct.cc src/audio/idct.cc src/audio/window.cc src/audio/synth.cc src/audio/tracker.cc src/audio/spectrogram_resource_manager.cc src/audio/audio_engine.cc) +set(AUDIO_SOURCES src/audio/audio.cc src/audio/ring_buffer.cc src/audio/miniaudio_backend.cc src/audio/wav_dump_backend.cc src/audio/gen.cc src/audio/fdct.cc src/audio/idct.cc src/audio/fft.cc src/audio/window.cc src/audio/synth.cc src/audio/tracker.cc src/audio/spectrogram_resource_manager.cc src/audio/audio_engine.cc src/audio/spectral_brush.cc) set(PROCEDURAL_SOURCES src/procedural/generator.cc) set(GPU_SOURCES src/gpu/gpu.cc @@ -109,6 +109,9 @@ set(GPU_SOURCES ) set(3D_SOURCES src/3d/renderer.cc + src/3d/renderer_sdf.cc + src/3d/renderer_mesh.cc + src/3d/renderer_skybox.cc src/3d/visual_debug.cc src/3d/bvh.cc src/3d/physics.cc @@ -178,15 +181,42 @@ else() set(TRACKER_COMPILER_FINAL_DEPENDS ${TRACKER_COMPILER_DEPENDS}) endif() -#-- - Code Generation Helpers -- - +#-- - Code Generation Helpers -- - +# Helper to parse demo_assets.txt and extract individual file paths +function(parse_asset_list INPUT_TXT OUT_FILE_LIST) + set(ASSET_FILES "") + if(EXISTS ${INPUT_TXT}) + file(STRINGS ${INPUT_TXT} LINES) + foreach(LINE ${LINES}) + # Skip comments and empty lines + string(STRIP "${LINE}" LINE) + if(NOT LINE MATCHES "^#" AND NOT LINE STREQUAL "") + # Extract filename (third field: ASSET_NAME, COMPRESSION, FILENAME, DESC) + string(REGEX REPLACE "^[^,]+,[^,]+,[ ]*([^,]+).*" "\\1" FILENAME "${LINE}") + string(STRIP "${FILENAME}" FILENAME) + # Build full path + set(FULL_PATH "${CMAKE_CURRENT_SOURCE_DIR}/assets/final/${FILENAME}") + if(EXISTS ${FULL_PATH}) + list(APPEND ASSET_FILES ${FULL_PATH}) + endif() + endif() + endforeach() + endif() + set(${OUT_FILE_LIST} ${ASSET_FILES} PARENT_SCOPE) +endfunction() + function(pack_assets NAME INPUT_TXT HEADER_VAR DATA_CC_VAR TARGET_NAME) set(OUT_H ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/${NAME}.h) set(OUT_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/${NAME}_data.cc) + + # Parse asset list to get individual file dependencies + parse_asset_list(${INPUT_TXT} ASSET_FILE_DEPS) + add_custom_command( OUTPUT ${OUT_H} ${OUT_CC} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/src/generated COMMAND ${ASSET_PACKER_CMD} ${INPUT_TXT} ${OUT_H} ${OUT_CC} - DEPENDS ${ASSET_PACKER_DEPENDS} ${INPUT_TXT} + DEPENDS ${ASSET_PACKER_DEPENDS} ${INPUT_TXT} ${ASSET_FILE_DEPS} COMMENT "Generating assets for ${NAME}..." ) set(${HEADER_VAR} ${OUT_H} PARENT_SCOPE) @@ -198,11 +228,15 @@ endfunction() function(pack_test_assets NAME INPUT_TXT HEADER_VAR DATA_CC_VAR TARGET_NAME) set(OUT_H ${CMAKE_CURRENT_BINARY_DIR}/src/generated_test/${NAME}.h) set(OUT_CC ${CMAKE_CURRENT_BINARY_DIR}/src/generated_test/${NAME}_data.cc) + + # Parse asset list to get individual file dependencies + parse_asset_list(${INPUT_TXT} ASSET_FILE_DEPS) + add_custom_command( OUTPUT ${OUT_H} ${OUT_CC} COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/src/generated_test COMMAND ${ASSET_PACKER_CMD} ${INPUT_TXT} ${OUT_H} ${OUT_CC} - DEPENDS ${ASSET_PACKER_DEPENDS} ${INPUT_TXT} + DEPENDS ${ASSET_PACKER_DEPENDS} ${INPUT_TXT} ${ASSET_FILE_DEPS} COMMENT "Generating assets for test ${NAME}..." ) set(${HEADER_VAR} ${OUT_H} PARENT_SCOPE) @@ -290,6 +324,14 @@ if(DEMO_BUILD_TESTS) target_link_libraries(test_dct PRIVATE audio util procedural ${DEMO_LIBS}) add_dependencies(test_dct generate_demo_assets) + add_demo_test(test_fft FftTest src/tests/test_fft.cc ${GEN_DEMO_CC}) + target_link_libraries(test_fft PRIVATE audio util procedural ${DEMO_LIBS}) + add_dependencies(test_fft generate_demo_assets) + + add_demo_test(test_spectral_brush SpectralBrushTest src/tests/test_spectral_brush.cc ${GEN_DEMO_CC}) + target_link_libraries(test_spectral_brush PRIVATE audio util procedural ${DEMO_LIBS}) + add_dependencies(test_spectral_brush generate_demo_assets) + add_demo_test(test_audio_gen AudioGenTest src/tests/test_audio_gen.cc ${GEN_DEMO_CC}) target_link_libraries(test_audio_gen PRIVATE audio util procedural ${DEMO_LIBS}) add_dependencies(test_audio_gen generate_demo_assets) @@ -330,6 +372,10 @@ if(DEMO_BUILD_TESTS) target_link_libraries(test_shader_assets PRIVATE util procedural ${DEMO_LIBS}) add_dependencies(test_shader_assets generate_demo_assets) + add_demo_test(test_shader_compilation ShaderCompilationTest src/tests/test_shader_compilation.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC}) + target_link_libraries(test_shader_compilation PRIVATE gpu util procedural ${DEMO_LIBS}) + add_dependencies(test_shader_compilation generate_demo_assets) + add_demo_executable(test_spectool src/tests/test_spectool.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC}) target_compile_definitions(test_spectool PRIVATE DEMO_BUILD_TOOLS) target_link_libraries(test_spectool PRIVATE audio util procedural ${DEMO_LIBS}) @@ -372,6 +418,10 @@ if(DEMO_BUILD_TESTS) add_demo_executable(test_3d_physics src/tests/test_3d_physics.cc ${PLATFORM_SOURCES} ${GENERATED_TIMELINE_CC} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC}) target_link_libraries(test_3d_physics PRIVATE 3d gpu audio procedural util ${DEMO_LIBS}) add_dependencies(test_3d_physics generate_timeline generate_demo_assets generate_tracker_music) + + add_demo_executable(test_mesh src/tests/test_mesh.cc ${PLATFORM_SOURCES} ${GENERATED_TIMELINE_CC} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC}) + target_link_libraries(test_mesh PRIVATE 3d gpu audio procedural util ${DEMO_LIBS}) + add_dependencies(test_mesh generate_timeline generate_demo_assets generate_tracker_music) endif() #-- - Extra Tools -- - @@ -382,6 +432,10 @@ if(DEMO_BUILD_TOOLS OR DEMO_BUILD_TESTS) add_dependencies(spectool generate_tracker_music generate_demo_assets) add_executable(specview tools/specview.cc) + + add_demo_executable(specplay tools/specplay.cc ${PLATFORM_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC}) + target_link_libraries(specplay PRIVATE audio util ${DEMO_LIBS}) + add_dependencies(specplay generate_demo_assets) endif() #-- - Global Target Configuration -- - @@ -395,4 +449,4 @@ add_custom_target(final add_custom_target(pack_source COMMAND tar -czf demo_all.tgz --exclude=.git --exclude=build* --exclude=.gemini* --exclude=*.tgz --exclude=*.zip --exclude=.DS_Store . WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} -) +)
\ No newline at end of file |
