summaryrefslogtreecommitdiff
path: root/cmake/DemoSourceLists.cmake
blob: fc6b02d77758c3e3626c078ea52fcbff2dd101c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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)

# 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;src/gpu/effect.cc;src/gpu/effects/heptagon_effect.cc;src/gpu/effects/particles_effect.cc;src/gpu/effects/passthrough_effect.cc;src/gpu/effects/moving_ellipse_effect.cc;src/gpu/effects/particle_spray_effect.cc;src/gpu/effects/gaussian_blur_effect.cc;src/gpu/effects/solarize_effect.cc;src/gpu/effects/scene1_effect.cc;src/gpu/effects/chroma_aberration_effect.cc;src/gpu/effects/vignette_effect.cc;src/gpu/effects/cnn_effect.cc;src/gpu/effects/post_process_helper.cc;src/gpu/effects/shaders.cc;src/gpu/effects/hybrid_3d_effect.cc;src/gpu/effects/flash_cube_effect.cc;src/gpu/effects/theme_modulation_effect.cc;src/gpu/effects/fade_effect.cc;src/gpu/effects/flash_effect.cc;src/gpu/effects/shader_composer.cc;src/gpu/effects/circle_mask_effect.cc;src/gpu/effects/rotating_cube_effect.cc;src/gpu/texture_manager.cc;src/gpu/texture_readback.cc"
    # Strip mode: Minimal GPU stubs only
    "src/gpu/stub_gpu.cc"
    # Normal mode: Full GPU implementation
    "src/gpu/gpu.cc;src/gpu/effect.cc;src/gpu/effects/heptagon_effect.cc;src/gpu/effects/particles_effect.cc;src/gpu/effects/passthrough_effect.cc;src/gpu/effects/moving_ellipse_effect.cc;src/gpu/effects/particle_spray_effect.cc;src/gpu/effects/gaussian_blur_effect.cc;src/gpu/effects/solarize_effect.cc;src/gpu/effects/scene1_effect.cc;src/gpu/effects/chroma_aberration_effect.cc;src/gpu/effects/vignette_effect.cc;src/gpu/effects/cnn_effect.cc;src/gpu/effects/post_process_helper.cc;src/gpu/effects/shaders.cc;src/gpu/effects/hybrid_3d_effect.cc;src/gpu/effects/flash_cube_effect.cc;src/gpu/effects/theme_modulation_effect.cc;src/gpu/effects/fade_effect.cc;src/gpu/effects/flash_effect.cc;src/gpu/effects/shader_composer.cc;src/gpu/effects/circle_mask_effect.cc;src/gpu/effects/rotating_cube_effect.cc;src/gpu/texture_manager.cc;src/gpu/texture_readback.cc"
)

# 3D sources (conditional: HEADLESS / STRIP_EXTERNAL / NORMAL)
demo_set_conditional_sources(3D_SOURCES
    # Headless mode: Full 3D (needed for Hybrid3DEffect)
    "src/3d/renderer.cc;src/3d/renderer_draw.cc;src/3d/renderer_pipelines.cc;src/3d/renderer_resources.cc;src/3d/visual_debug.cc;src/3d/bvh.cc;src/3d/physics.cc;src/3d/scene_loader.cc"
    # 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
    "src/3d/renderer.cc;src/3d/renderer_draw.cc;src/3d/renderer_pipelines.cc;src/3d/renderer_resources.cc;src/3d/visual_debug.cc;src/3d/bvh.cc;src/3d/physics.cc;src/3d/scene_loader.cc"
)

# 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"
)