build: split the 1423-line root CMakeLists into per-directory files with shared target helpers
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# The shifter is hand-rolled rather than WDL_SimplePitchShifter because that header drags
|
||||
# <windows.h> in via wdltypes.h, which cannot enter the pure engine.
|
||||
reasampler_pure_library(pitch_shift SOURCES pitch_shift.cpp LINK PUBLIC peaks)
|
||||
# Links only pitch_shift: linking more would break the plain-data-boundary proof — and
|
||||
# specifically the compile-time proof it does not drag in the WDL <windows.h> chain.
|
||||
reasampler_test(pitch_shift LINK pitch_shift)
|
||||
|
||||
reasampler_pure_library(velocity_curve SOURCES velocity_curve.cpp)
|
||||
# Links only velocity_curve, deliberately not editor_geometry: the proof the engine can
|
||||
# depend on the curve without inheriting the editor's layout types.
|
||||
reasampler_test(velocity_curve LINK velocity_curve)
|
||||
|
||||
reasampler_pure_library(master_gain SOURCES master_gain.cpp)
|
||||
reasampler_test(master_gain LINK master_gain)
|
||||
|
||||
# Two TUs on the engine's own responsibility seam (per-note setup vs. note routing and
|
||||
# block render). The per-sample render half stays inline in voice.h precisely so this TU
|
||||
# boundary costs the hot path nothing.
|
||||
reasampler_pure_library(sampler_core
|
||||
SOURCES voice.cpp voice_engine.cpp
|
||||
LINK PUBLIC peaks pitch_shift velocity_curve)
|
||||
# Links only sampler_core: linking more would break the plain-data-boundary proof — a VST3
|
||||
# or REAPER type reaching the core would fail to compile or link here.
|
||||
reasampler_test(sampler_core LINK sampler_core)
|
||||
|
||||
add_subdirectory(filter)
|
||||
@@ -0,0 +1,15 @@
|
||||
# Control mapping, SVF coefficients, morph weights, and the filter type each get their own
|
||||
# TU; VoiceFilter::process stays header-inline so the kernel still inlines at the call site.
|
||||
reasampler_pure_library(filter SOURCES
|
||||
filter_params.cpp
|
||||
filter_coeffs.cpp
|
||||
filter_morph.cpp
|
||||
voice_filter.cpp)
|
||||
|
||||
# Four test targets along the module's own seams so each asserts one domain. filter_tests
|
||||
# alone owns the analytic reference and the steady-state gain measurement — a forked copy of
|
||||
# a measurement reference is a worse defect than a long file.
|
||||
reasampler_test(filter_params LINK filter)
|
||||
reasampler_test(filter_morph LINK filter)
|
||||
reasampler_test(filter_state LINK filter)
|
||||
reasampler_test(filter LINK filter)
|
||||
Reference in New Issue
Block a user