Claude-skill-registry build-cmake

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

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/build-cmake" ~/.claude/skills/majiayu000-claude-skill-registry-build-cmake && rm -rf "$T"
manifest: skills/data/build-cmake/SKILL.md
source content

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

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

Generators

GeneratorCommandPlatformNotes
Ninja
-G Ninja
macOS, WindowsFast, recommended
Xcode
-G Xcode
macOS, iOS, visionOSMulti-config, good for debugging
Visual Studio
-G "Visual Studio 17 2022" -A x64
WindowsMulti-config

Build Commands

Configure (choose one):

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:

cmake --build . --config Release

Build specific target:

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

Target Suffixes

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

Common Options

# 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:

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

iOS Simulator:

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

visionOS:

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

Web (Emscripten):

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