Agent skill

build-cmake

Build an iPlug2 plugin project using CMake with Ninja, Xcode, or Visual Studio generators

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/build-cmake

SKILL.md

Build iPlug2 Plugin with CMake

Use this skill when the user wants to build their plugin project using CMake.

Prerequisites

  • CMake 3.14+
  • Ninja (recommended) or Xcode/Visual Studio
  • Plugin SDKs downloaded (VST3, CLAP, etc.) via /setup-deps

Quick Start

bash
cd [ProjectFolder]
mkdir -p build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
cmake --build .

Generators

Generator Command Platform Notes
Ninja -G Ninja macOS, Windows Fast, recommended
Xcode -G Xcode macOS, iOS, visionOS Multi-config, good for debugging
Visual Studio -G "Visual Studio 17 2022" -A x64 Windows Multi-config

Build Commands

Configure (choose one):

bash
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..          # Ninja
cmake -G Xcode ..                                      # Xcode
cmake -G "Visual Studio 17 2022" -A x64 ..             # VS 2022

Build all targets:

bash
cmake --build . --config Release

Build specific target:

bash
cmake --build . --config Release --target [PluginName]-vst3

Target Suffixes

Format Target Suffix
Standalone App -app
VST2 -vst2
VST3 -vst3
CLAP -clap
AAX -aax
AUv2 -au

Common Options

bash
# Debug build
-DCMAKE_BUILD_TYPE=Debug

# Release build
-DCMAKE_BUILD_TYPE=Release

# Universal binaries (macOS)
-DIPLUG2_UNIVERSAL=ON

# IGraphics backend
-DIGRAPHICS_BACKEND=SKIA -DIGRAPHICS_RENDERER=METAL

# Debug host for plugins
-DIPLUG2_DEBUG_HOST="/Applications/REAPER.app"

Platform-Specific

iOS Device:

bash
cmake -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DIPLUG2_IOS_PLATFORM=OS ..

iOS Simulator:

bash
cmake -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DIPLUG2_IOS_PLATFORM=SIMULATOR ..

visionOS:

bash
cmake -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DIPLUG2_IOS_PLATFORM=VISIONOS ..

Web (Emscripten):

bash
emcmake cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --target [PluginName]-wam

Build Output

Output goes to build/out/:

  • [PluginName].app - Standalone
  • [PluginName].vst3/ - VST3
  • [PluginName].clap/ - CLAP
  • [PluginName].component/ - AUv2
  • [PluginName].aaxplugin/ - AAX

Workflow

  1. Ask for build preferences:

    • Generator (Ninja/Xcode/VS)
    • Configuration (Debug/Release)
    • Specific target or all
    • IGraphics backend if relevant
  2. Configure if needed (only once per build directory)

  3. Build the requested target(s)

  4. Report output location from build/out/

Tips

  • Ninja is fastest for iterative development
  • Xcode generator required for Swift examples (IPlugSwiftUI, IPlugCocoaUI)
  • Use --target to build specific formats and avoid SDK-related failures
  • Check Documentation/cmake.md for full reference

Didn't find tool you were looking for?

Be as detailed as possible for better results