# Source File Lists # Conditional source file lists based on build mode # Audio sources (unconditional) set(AUDIO_SOURCES src/audio/audio.cc src/audio/ring_buffer.cc src/audio/backend/miniaudio_backend.cc src/audio/backend/wav_dump_backend.cc src/audio/backend/silent_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 ) # Procedural sources (unconditional) set(PROCEDURAL_SOURCES src/procedural/generator.cc) # Utility sources (unconditional) set(UTIL_SOURCES src/util/asset_manager.cc src/util/file_watcher.cc) # Common effect sources (shared between headless and normal modes) set(COMMON_GPU_EFFECTS src/gpu/effect.cc src/effects/heptagon_effect.cc src/effects/particles_effect.cc src/effects/passthrough_effect.cc src/effects/moving_ellipse_effect.cc src/effects/particle_spray_effect.cc src/effects/gaussian_blur_effect.cc src/effects/solarize_effect.cc src/effects/scene1_effect.cc src/effects/chroma_aberration_effect.cc src/effects/vignette_effect.cc cnn_v1/src/cnn_v1_effect.cc cnn_v2/src/cnn_v2_effect.cc src/gpu/post_process_helper.cc src/gpu/shaders.cc src/effects/hybrid_3d_effect.cc src/effects/flash_cube_effect.cc src/effects/theme_modulation_effect.cc src/effects/fade_effect.cc src/effects/flash_effect.cc src/gpu/shader_composer.cc src/effects/circle_mask_effect.cc src/effects/rotating_cube_effect.cc src/gpu/texture_manager.cc src/gpu/texture_readback.cc src/effects/sdf_test_effect.cc ) # GPU sources (conditional: HEADLESS / STRIP_EXTERNAL / NORMAL) demo_set_conditional_sources(GPU_SOURCES # Headless mode: Functional stubs (timeline/audio work) "src/gpu/headless_gpu.cc;src/gpu/demo_effects.cc;${COMMON_GPU_EFFECTS}" # Strip mode: Minimal GPU stubs only "src/gpu/stub_gpu.cc" # Normal mode: Full GPU implementation "src/gpu/gpu.cc;${COMMON_GPU_EFFECTS}" ) # Common 3D sources (shared between headless and normal modes) set(COMMON_3D_FILES src/3d/renderer.cc src/3d/renderer_draw.cc src/3d/renderer_pipelines.cc src/3d/renderer_resources.cc src/3d/renderer_helpers.cc src/3d/visual_debug.cc src/3d/bvh.cc src/3d/physics.cc src/3d/scene_loader.cc ) # 3D sources (conditional: HEADLESS / STRIP_EXTERNAL / NORMAL) demo_set_conditional_sources(3D_SOURCES # Headless mode: Full 3D (needed for Hybrid3DEffect) "${COMMON_3D_FILES}" # Strip mode: Stub 3D (depends on WebGPU) "src/3d/bvh.cc;src/3d/physics.cc;src/3d/scene_loader.cc" # Normal mode: Full 3D implementation "${COMMON_3D_FILES}" ) # Platform sources (conditional: HEADLESS / STRIP_EXTERNAL / NORMAL) demo_set_conditional_sources(PLATFORM_SOURCES # Headless mode: Headless platform stub "src/platform/headless_platform.cc" # Strip mode: Stub platform "src/platform/stub_platform.cc" # Normal mode: Full platform with GLFW "src/platform/platform.cc;third_party/glfw3webgpu/glfw3webgpu.c" )