build-cmake
Build an iPlug2 plugin project using CMake (Ninja or Xcode generator)
$ 설치
git clone https://github.com/iPlug2/iPlug2OOS /tmp/iPlug2OOS && cp -r /tmp/iPlug2OOS/.claude/skills/build-cmake ~/.claude/skills/iPlug2OOS// tip: Run this command in your terminal to install the skill
SKILL.md
name: build-cmake description: Build an iPlug2 plugin project using CMake (Ninja or Xcode generator)
Build iPlug2 Plugin with CMake
Use this skill when the user wants to build their plugin project using CMake.
Workflow
-
Identify the project:
- Look for
CMakeLists.txtin project directories
- Look for
-
Choose a preset based on platform and build requirements
Using CMake Presets
The project uses CMake presets for standardized builds. Prefer --preset instead of manual -G flags.
List Available Presets
cmake --list-presets
macOS Builds
# Configure with Ninja (fast builds)
cmake --preset macos-ninja -S [ProjectName]
# Build
cmake --build build/macos-ninja --target [ProjectName]-app
# Or with Xcode (for debugging)
cmake --preset macos-xcode -S [ProjectName]
cmake --build build/macos-xcode --config Release --target [ProjectName]-app
# Universal binary (arm64 + x86_64)
cmake --preset macos-xcode-universal -S [ProjectName]
cmake --build build/macos-xcode-universal --config Release
iOS Builds
# iOS Device
cmake --preset ios-xcode -S [ProjectName]
cmake --build build/ios-xcode --config Release
# iOS Simulator
cmake --preset ios-sim-xcode -S [ProjectName]
cmake --build build/ios-sim-xcode --config Release
For running in Simulator, use the run-ios-simulator skill.
visionOS Builds
# visionOS Device
cmake --preset visionos-xcode -S [ProjectName]
cmake --build build/visionos-xcode --config Release
# visionOS Simulator
cmake --preset visionos-sim-xcode -S [ProjectName]
cmake --build build/visionos-sim-xcode --config Release
Windows Builds
# Visual Studio 2022 (x64)
cmake --preset windows-vs2022 -S [ProjectName]
cmake --build build/windows-vs2022 --config Release
# ARM64EC
cmake --preset windows-vs2022-arm64ec -S [ProjectName]
cmake --build build/windows-vs2022-arm64ec --config Release
Web/WAM Build (Emscripten)
# Configure (requires EMSDK environment)
cmake --preset wam -S [ProjectName]
# Build
cmake --build build/wam --target [ProjectName]-wam
# Create distribution
cmake --build build/wam --target [ProjectName]-wam-dist
Output in build/wam/out/[ProjectName]-wam/
Available Configure Presets
| Preset | Platform | Generator | Description |
|---|---|---|---|
macos-ninja | macOS | Ninja | Fast command-line builds (NanoVG/Metal) |
macos-make | macOS | Make | Unix Makefiles (NanoVG/Metal) |
macos-xcode | macOS | Xcode | IDE builds with debugging |
macos-xcode-universal | macOS | Xcode | Universal binary (arm64+x86_64) |
ios-xcode | iOS | Xcode | iOS device builds |
ios-sim-xcode | iOS | Xcode | iOS Simulator builds |
visionos-xcode | visionOS | Xcode | visionOS device builds |
visionos-sim-xcode | visionOS | Xcode | visionOS Simulator builds |
windows-ninja | Windows | Ninja | Fast Windows command-line builds |
windows-vs2022 | Windows | VS2022 | Windows x64 builds |
windows-vs2022-arm64ec | Windows | VS2022 | Windows ARM64EC builds |
wam | Web | Ninja | Emscripten/WebAssembly builds |
Available Targets
[ProjectName]-app- Standalone application[ProjectName]-vst3- VST3 plugin[ProjectName]-au- Audio Unit (AUv2)[ProjectName]-clap- CLAP plugin[ProjectName]AU-framework- AUv3 framework[ProjectName]AUv3-appex- AUv3 app extension[ProjectName]-ios-app- iOS standalone app[ProjectName]-wam- Web Audio Module
Graphics Backend and Renderer
Default configuration uses NanoVG with Metal (macOS/iOS) or GL2 (Windows).
To use Skia backend, add cache variables:
cmake --preset macos-ninja -S [ProjectName] \
-DIGRAPHICS_BACKEND=SKIA \
-DIGRAPHICS_RENDERER=METAL
Valid combinations:
- NanoVG: GL2, GL3, METAL
- Skia: GL3, METAL, CPU
Note: Skia requires prebuilt libraries:
./iPlug2/Dependencies/download-prebuilt-libs.sh mac
Build Locations (symlinked on macOS)
- APP:
~/Applications/[ProjectName].app - VST3:
~/Library/Audio/Plug-Ins/VST3/ - AU:
~/Library/Audio/Plug-Ins/Components/ - CLAP:
~/Library/Audio/Plug-Ins/CLAP/
Clean Build
# Remove build directory and reconfigure
rm -rf build/macos-ninja
cmake --preset macos-ninja -S [ProjectName]
Example
# Quick build of standalone app
cmake --preset macos-ninja -S MySynth
cmake --build build/macos-ninja --target MySynth-app
# Open the built app
open ~/Applications/MySynth.app
# Build for iOS Simulator
cmake --preset ios-sim-xcode -S MySynth
cmake --build build/ios-sim-xcode --config Release
Repository

iPlug2
Author
iPlug2/iPlug2OOS/.claude/skills/build-cmake
131
Stars
32
Forks
Updated6d ago
Added1w ago