Speclet Commands
May 19, 2026 ยท View on GitHub
This document lists the steps and commands that were executed to set up the project or that can be used to build and test the project.
Install Tools
Initial build
cmake -Bbuild -DJUCE_BUILD_EXTRAS=ON -DJUCE_BUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE:STRING=Debug -G Ninja
cmake --build build
Build AudioPluginHost to test the plugin
cmake.exe --build build --config Debug --target AudioPluginHost
Run Unit-Tests
This project uses Catch2 for unit testing and CTest for test execution.
In case needed, the unit tests can be built with the following command.
cmake.exe --build build --config Debug --target SpecletTests
From the root directory, start the unit test with the following command.
ctest --test-dir build/test
Code Quality Analysis with clang-tidy
This project uses clang-tidy for static code analysis.
Local clang-tidy analysis
First, ensure clang-tools is installed on your system:
macOS:
brew install llvm
Linux (Ubuntu/Debian):
sudo apt-get install clang-tools
Then run clang-tidy on all project source files:
cd build
find ../src -type f \( -name '*.cpp' -o -name '*.h' \) -print0 | xargs -0 clang-tidy -p .
Or analyze specific files:
cd build
clang-tidy -p . ../src/SpecletPluginProcessor.cpp
Continuous Integration
clang-tidy is automatically run on Linux and macOS in the GitHub Actions CI/CD pipeline. Results are displayed in the build logs.
Create and update package-lock.cmake
As described in CPM Package-lock, package-lock.cmake can be created and updated using the following commands:
cmake -H. -Bbuild
cmake --build build --target cpm-update-package-lock
The advantage of this approach is that there is one distinct file that contains all dependencies and versions. Renovate is used to update those dependencies automatically as configured in renovate.json.