Installs: 0
Used in: 1 repos
Updated: 8h ago
$
npx ai-builder add skill iPlug2/build-cmakeInstalls to .claude/skills/build-cmake/
# Build iPlug2 Plugin with CMake Use this skill when the user wants to build their plugin project using CMake. ## Workflow 1. **Identify the project:** - Look for `CMakeLists.txt` in project directories 2. **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 ```bash cmake --list-presets ``` ### macOS Builds ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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) ```bash # 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: ```bash 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: ```bash ./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 ```bash # Remove build directory and reconfigure rm -rf build/macos-ninja cmake --preset macos-ninja -S [ProjectName] ``` ## Example ```bash # 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 ```
Quick Install
$
npx ai-builder add skill iPlug2/build-cmakeDetails
- Type
- skill
- Author
- iPlug2
- Slug
- iPlug2/build-cmake
- Created
- 2d ago