summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt60
1 files changed, 55 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2a779fc..fb8bb7e 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 -- -
@@ -395,4 +445,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