docs: record the CMake build-system split in COMPLETED; note the multi-config ctest flag
This commit is contained in:
@@ -42,6 +42,10 @@ Vendors three submodules (see `.gitmodules`):
|
||||
cmake --build build
|
||||
ctest --test-dir build
|
||||
|
||||
On a multi-config generator (Visual Studio, Xcode) the bare `ctest` command above
|
||||
reports every test as "Not Run" — add `-C Debug` (or whichever config was built) to
|
||||
resolve the test executables. Single-config generators (Ninja, Make) need no such flag.
|
||||
|
||||
Every pure module has a corresponding `<module>_tests` executable target that runs without REAPER or a DAW. Targets are declared per directory: each `src/**/CMakeLists.txt` owns its own libraries and their test targets, added via `add_subdirectory` from the root, which keeps only repo-global settings (version, channel, vendor paths). `cmake/reasampler_targets.cmake` holds the two shared declaration helpers. The two loadable-module targets are `reaper_reasampler` (the REAPER extension `.dll`/`.dylib`/`.so`) and `reasampler_vst` (the VST3 instrument; Windows-only, omitted if the `vendor/vst3sdk` slice is absent). The `sample_usage_tests` executable target runs the pure unit tests for `sample_usage` (no REAPER, no DAW).
|
||||
|
||||
### Beta channel build
|
||||
|
||||
@@ -19,6 +19,32 @@ findings — all content cut that should have survived — and all ten were
|
||||
remediated and re-gated before merge. Driver: Daniel's instruction — *"Brief
|
||||
concise engineering comments. A little why, and maybe context, never WHAT."*
|
||||
|
||||
### CMake build-system split (ad-hoc, Daniel's request)
|
||||
|
||||
Split the 1423-line root `CMakeLists.txt` into a 91-line root plus 18 per-directory
|
||||
`CMakeLists.txt` files under `src/`, with two shared declaration helpers
|
||||
(`reasampler_pure_library`, `reasampler_test`) factored into a new
|
||||
`cmake/reasampler_targets.cmake`. The root now keeps only repo-global concerns:
|
||||
version/channel single-source-of-truth, `configure_file`, vendor path vars,
|
||||
`LICE_SRC`, `enable_testing()`, and the `add_subdirectory` calls. Comments throughout
|
||||
were rewritten to the project's comment conventions — phase/wave/ticket IDs removed,
|
||||
module semantics already owned by `src/**/CLAUDE.md` deleted, load-bearing build
|
||||
facts kept.
|
||||
|
||||
Also fixed two duplicate-object-code defects surfaced by the split: 18 `core/`
|
||||
translation units were previously compiled directly into the `reaper_reasampler`
|
||||
module *while also* being linked in as static libraries — those 18 source entries
|
||||
were removed from the module's source list and 3 missing link edges
|
||||
(`view_tree`, `guid_diff`, `lane_keys`) added so every `core/` TU now enters through
|
||||
exactly one static-library link edge. A dead `bridge_marshal` link edge was also
|
||||
dropped from `reaper_reasampler`, and two inaccurate comments in
|
||||
`src/app/CMakeLists.txt` were corrected.
|
||||
|
||||
No `.cpp`, `.h`, `tests/`, or `vendor/` file was touched. Behaviour is unchanged and
|
||||
was verified mechanically: same 130 targets, same 65 tests all passing,
|
||||
`reaper_reasampler.dll` byte-identical at 3,477,504 bytes, both channels
|
||||
(stable/beta) building to the same artifact names and locations as before.
|
||||
|
||||
### Θ-W1-T1 — zone-retirement
|
||||
|
||||
ReaSampler 9000's zone-mapping system is retired: one loaded capture, one parameter
|
||||
|
||||
Reference in New Issue
Block a user