Migrated from Make to CMake.

This commit is contained in:
Johannes Findeisen 2026-11-06 19:05:14 +01:00
commit b6ba093000
52 changed files with 1276 additions and 1210 deletions

View file

@ -1,6 +1,6 @@
# Official Steinberg SDK examples
These are optional integration examples. Normal `make` / `make test` uses the
These are optional integration examples. Normal CMake builds and CTest use the
existing pinned C ABI headers and never downloads SDKs. Original example source
is MIT-licensed like xtc. SDK code is compiled from an external checkout, not
vendored or installed by these targets. C++ is confined to the SDK examples;
@ -26,13 +26,17 @@ trademark distribution rights.
From the xtc repository root:
```sh
make VST3_SDK_ROOT=/your/path/vst3sdk test-steinberg-sdk
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release \
-DXTC_BUILD_STEINBERG=ON -DXTC_VST3_SDK_ROOT=/your/path/vst3sdk
cmake --build build --parallel 3
ctest --test-dir build --output-on-failure -R steinberg
```
This builds the original `xtc-sdk-examples.vst3` bundle using Steinberg's factory,
AudioEffect, controller and platform-entry implementations; runs the official
validator; and runs xtc's gain/MIDI interoperability checks. Build output stays
under `build/steinberg-sdk`; automatic plugin-directory links and installation
validator; and runs xtc's gain/MIDI interoperability checks. The plugin bundle stays
under `build/steinberg-sdk`; SDK helper executables use `build/bin`. Automatic
plugin-directory links and installation
are disabled. SDK source may emit its own compiler warnings.
The bundle contains:
@ -56,9 +60,9 @@ xtc synth -> effect host path:
/absolute/path/to/new-sdk-demo.wav
```
The destination must not exist. This executable is built by `test-steinberg-sdk`.
To use a different xtc build directory, pass `BUILD_DIR=...`; the SDK build then
lives under that directory unless `STEINBERG_BUILD_DIR=...` is explicitly set.
The destination must not exist. This executable is built when the SDK option is enabled.
Use CMake’s `-B` argument to select another binary directory; the SDK build then
lives under its `steinberg-sdk` subdirectory.
The main app's existing plugin loader can use the bundle path through its C API;
its file chooser may require selecting the inner `.so`. The effect loads as a