From 2519948f03a8fc467614bdfbdf5bd3e065dbcb5e Mon Sep 17 00:00:00 2001 From: skal Date: Mon, 2 Feb 2026 23:26:16 +0100 Subject: feat: Complete audio tracker system integration and tests --- CMakeLists.txt | 47 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 7 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 7825e6a..706f1c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,6 +121,20 @@ else() set(TRACKER_COMPILER_DEPENDS tracker_compiler) endif() +# Always build a host-native tracker_compiler for code generation purposes +add_executable(tracker_compiler_host tools/tracker_compiler.cc) +set_target_properties(tracker_compiler_host PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tools_host") + +# Determine which tracker compiler to use for code generation +if (DEMO_CROSS_COMPILE_WIN32) + set(TRACKER_COMPILER_FINAL_CMD "${CMAKE_SOURCE_DIR}/build_native/tools_host/tracker_compiler_host") + set(TRACKER_COMPILER_FINAL_DEPENDS tracker_compiler_host) +else() + set(TRACKER_COMPILER_FINAL_CMD ${TRACKER_COMPILER_CMD}) + set(TRACKER_COMPILER_FINAL_DEPENDS ${TRACKER_COMPILER_DEPENDS}) +endif() + #-- - Code Generation Helpers -- - function(pack_assets NAME INPUT_TXT HEADER_VAR DATA_CC_VAR TARGET_NAME) set(OUT_H ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/${NAME}.h) @@ -166,14 +180,25 @@ add_custom_command( ) add_custom_target(generate_timeline ALL DEPENDS ${GENERATED_TIMELINE_CC}) +set(TRACKER_MUSIC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/assets/music.track) +set(GENERATED_MUSIC_DATA_CC ${CMAKE_CURRENT_SOURCE_DIR}/src/generated/music_data.cc) +add_custom_command( + OUTPUT ${GENERATED_MUSIC_DATA_CC} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_SOURCE_DIR}/src/generated + COMMAND ${TRACKER_COMPILER_FINAL_CMD} ${TRACKER_MUSIC_PATH} ${GENERATED_MUSIC_DATA_CC} + DEPENDS ${TRACKER_COMPILER_FINAL_DEPENDS} ${TRACKER_MUSIC_PATH} tracker_compiler_host + COMMENT "Compiling tracker music..." +) +add_custom_target(generate_tracker_music ALL DEPENDS ${GENERATED_MUSIC_DATA_CC}) + pack_assets(assets ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/demo_assets.txt GEN_DEMO_H GEN_DEMO_CC generate_demo_assets) pack_test_assets(test_assets ${CMAKE_CURRENT_SOURCE_DIR}/assets/final/test_assets_list.txt GEN_TEST_H GEN_TEST_CC generate_test_assets) set(UTIL_SOURCES src/util/asset_manager.cc) #-- - Main Demo -- - -add_executable(demo64k src/main.cc ${PLATFORM_SOURCES} ${GPU_SOURCES} ${AUDIO_SOURCES} ${PROCEDURAL_SOURCES} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_TIMELINE_CC}) -add_dependencies(demo64k generate_demo_assets generate_timeline) +add_executable(demo64k src/main.cc ${PLATFORM_SOURCES} ${GPU_SOURCES} ${AUDIO_SOURCES} ${PROCEDURAL_SOURCES} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_TIMELINE_CC} ${GENERATED_MUSIC_DATA_CC}) +add_dependencies(demo64k generate_demo_assets generate_timeline generate_tracker_music) target_link_libraries(demo64k PRIVATE ${DEMO_LIBS}) #Size optimizations @@ -202,9 +227,15 @@ if(DEMO_BUILD_TESTS) add_executable(test_synth src/tests/test_synth.cc src/audio/synth.cc src/audio/idct.cc src/audio/window.cc) add_test(NAME SynthEngineTest COMMAND test_synth) - add_executable(test_spectool src/tests/test_spectool.cc ${AUDIO_SOURCES} ${PLATFORM_SOURCES}) + add_executable(test_tracker src/tests/test_tracker.cc src/audio/synth.cc src/audio/gen.cc src/audio/tracker.cc src/audio/window.cc src/audio/fdct.cc src/audio/idct.cc ${GENERATED_MUSIC_DATA_CC}) + target_link_libraries(test_tracker PRIVATE ${DEMO_LIBS}) + add_dependencies(test_tracker generate_tracker_music) + add_test(NAME TrackerSystemTest COMMAND test_tracker) + + add_executable(test_spectool src/tests/test_spectool.cc ${AUDIO_SOURCES} ${PLATFORM_SOURCES} ${GENERATED_MUSIC_DATA_CC}) target_compile_definitions(test_spectool PRIVATE DEMO_BUILD_TOOLS) target_link_libraries(test_spectool PRIVATE ${DEMO_LIBS}) + add_dependencies(test_spectool generate_tracker_music) add_test(NAME SpectoolEndToEndTest COMMAND test_spectool) add_executable(test_assets src/tests/test_assets.cc ${UTIL_SOURCES} ${PROCEDURAL_SOURCES} ${GEN_TEST_CC}) @@ -228,19 +259,21 @@ if(DEMO_BUILD_TESTS) add_executable(test_shader_composer src/tests/test_shader_composer.cc src/gpu/effects/shader_composer.cc) add_test(NAME ShaderComposerTest COMMAND test_shader_composer) - add_executable(test_texture_manager src/tests/test_texture_manager.cc ${GPU_SOURCES} ${PLATFORM_SOURCES} ${PROCEDURAL_SOURCES} ${AUDIO_SOURCES} ${GENERATED_TIMELINE_CC} ${UTIL_SOURCES} ${GEN_DEMO_CC}) + add_executable(test_texture_manager src/tests/test_texture_manager.cc ${GPU_SOURCES} ${PLATFORM_SOURCES} ${PROCEDURAL_SOURCES} ${AUDIO_SOURCES} ${GENERATED_TIMELINE_CC} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC}) target_link_libraries(test_texture_manager PRIVATE ${DEMO_LIBS}) - add_test(NAME TextureManagerTest COMMAND test_texture_manager) + add_dependencies(test_texture_manager generate_timeline generate_demo_assets generate_tracker_music) - add_executable(test_3d_render src/tests/test_3d_render.cc src/3d/renderer.cc ${GPU_SOURCES} ${PLATFORM_SOURCES} ${PROCEDURAL_SOURCES} ${AUDIO_SOURCES} ${GENERATED_TIMELINE_CC} ${UTIL_SOURCES} ${GEN_DEMO_CC}) + add_executable(test_3d_render src/tests/test_3d_render.cc src/3d/renderer.cc ${GPU_SOURCES} ${PLATFORM_SOURCES} ${PROCEDURAL_SOURCES} ${AUDIO_SOURCES} ${GENERATED_TIMELINE_CC} ${UTIL_SOURCES} ${GEN_DEMO_CC} ${GENERATED_MUSIC_DATA_CC}) target_link_libraries(test_3d_render PRIVATE ${DEMO_LIBS}) + add_dependencies(test_3d_render generate_timeline generate_demo_assets generate_tracker_music) endif() #-- - Extra Tools -- - if(DEMO_BUILD_TOOLS OR DEMO_BUILD_TESTS) - add_executable(spectool tools/spectool.cc ${PLATFORM_SOURCES} ${AUDIO_SOURCES}) + add_executable(spectool tools/spectool.cc ${PLATFORM_SOURCES} ${AUDIO_SOURCES} ${GENERATED_MUSIC_DATA_CC}) target_compile_definitions(spectool PRIVATE DEMO_BUILD_TOOLS) target_link_libraries(spectool PRIVATE ${DEMO_LIBS}) + add_dependencies(spectool generate_tracker_music) add_executable(specview tools/specview.cc) endif() -- cgit v1.2.3