AUDIO
Source snapshot · 12 October 2026

Reference VST3 modules for hosted-VST3 tests

Build and test

The SDK stays external; nothing is installed, registered or linked into a plug-in folder. Bundles are ad-hoc signed in place inside the build tree. The native tests read the in-module Rust allocation counter, so build the archive with allocation-probe:

cargo build --release -p ravet-vst3-reference-native --features allocation-probe
cmake -S examples/vst3-reference -B target/vst3-reference \
  -DCMAKE_BUILD_TYPE=Release -DRAVET_VST3_SDK=/path/to/vst3sdk \
  -DRAVET_VST3_REFERENCE_LIBRARY=$PWD/target/release/libravet_vst3_reference_native.a
cmake --build target/vst3-reference --parallel 2
ctest --test-dir target/vst3-reference --output-on-failure

cargo build --release -p ravet-host --features vst3-hosted-audio \
  --example vst3-reference-bank
M=target/vst3-reference/VST3/Release
cmake -S crates/ravet-host/native/vst3 -B target/vst3-host -DBUILD_TESTING=ON \
  -DCMAKE_BUILD_TYPE=Release -DRAVET_VST3_SDK=/path/to/vst3sdk \
  "-DRAVET_VST3_REFERENCE_MODULES=$PWD/$M/ravet_sidechain_vst3.vst3;$PWD/$M/ravet_event_probe_vst3.vst3" \
  -DRAVET_VST3_REFERENCE_BANK_LIBRARY=$PWD/target/release/examples/libvst3_reference_bank.a
cmake --build target/vst3-host --parallel 2
ctest --test-dir target/vst3-host -R reference --output-on-failure

The reference project forces SMTG_CREATE_PLUGIN_LINK off and SMTG_PLUGIN_TARGET_USER_PATH empty, and fails configuration otherwise. For each bundle it registers three tests:

Without RAVET_VST3_REFERENCE_MODULES, the native host project still compiles the reference test executables, registers no tests for them, and prints a configure-time status message. Without RAVET_VST3_REFERENCE_BANK_LIBRARY it skips the Rust bank executable.