This guide covers building plugdata from source on all supported platforms. Building from source allows you to customize the build, add your own externals, or contribute to development.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/plugdata-team/plugdata/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Required Tools
- CMake 3.21 or later (required for CLAP plugin support)
- Git with submodule support
- Python 3 interpreter
- Platform-specific build tools:
- macOS: Xcode or Xcode Command Line Tools
- Windows: Visual Studio 2019 or 2022
- Linux: GCC or Clang, Make
Linux Dependencies
Refer to the JUCE Linux Dependencies documentation and use the full command to install all required packages. Typical dependencies include:libasound2-devlibx11-devlibxrandr-devlibxinerama-devlibxcursor-devlibfreetype6-devlibwebkit2gtk-4.0-devlibglu1-mesa-dev
Clone the Repository
Build Configuration
Basic Build
CMake Build Options
Customize your build with CMake options using-D<OPTION>=<VALUE>:
Performance Options
| Option | Default | Description |
|---|---|---|
QUICK_BUILD | OFF | Skip slow-to-compile features (Gem, sfizz, ffmpeg) for faster iteration |
CMAKE_BUILD_TYPE | Release | Build type: Release, Debug, RelWithDebInfo |
Feature Toggles
| Option | Default | Description |
|---|---|---|
ENABLE_GEM | ON | Enable Gem graphics and video library |
ENABLE_SFIZZ | ON | Enable sfizz library for [sfz~] object |
ENABLE_FFMPEG | ON | Enable FFmpeg for audio/video file playback |
ENABLE_PERFETTO | OFF | Enable Perfetto performance profiling (advanced) |
ENABLE_TESTING | OFF | Enable end-to-end test suite |
Advanced Options
| Option | Default | Description |
|---|---|---|
ENABLE_ASAN | OFF | Enable AddressSanitizer for debugging memory issues |
ENABLE_WAYLAND | OFF | Enable native Wayland support (Linux, experimental) |
MACOS_LEGACY | OFF | Support older macOS versions (10.11+, x86_64 only) |
Example Configurations
Performance Profiling with Perfetto
Perfetto provides detailed performance analysis of DSP and UI operations.void myProcessingFunction() {
TRACE_COMPONENT(); // Automatically traces this function
// ... your code ...
}
Open traces at ui.perfetto.dev or follow the Melatonin Perfetto guide.
Platform-Specific Notes
macOS
Deployment Targets:- Standard: macOS 10.15+ (Universal Binary: arm64 + x86_64)
- Legacy: macOS 10.11+ (x86_64 only) with
MACOS_LEGACY=ON - iOS: iOS 12.0+
NANOVG_METAL_IMPLEMENTATION=OFF to disable.
Windows
Visual Studio:- Tested with VS 2019 and VS 2022
- Use x64 architecture:
-A x64 - ASIO support is automatically included
MultiThreaded[Debug]
Linux
Audio Backends:- ALSA (enabled by default)
- JACK (enabled by default)
wayland-client, wayland-cursor, xkbcommon, libdecor-0, egl
BSD
On BSD systems, Gem and sfizz are automatically disabled due to compatibility issues.
Build Outputs
After building, plugins and standalone app are located in:Installing
To install system-wide:Troubleshooting
CMake Version Too Old
Submodules Not Initialized
git submodule update --init --recursive
Python Not Found
Linux Missing Dependencies
Solution: Install all JUCE dependencies as listed in the Linux Dependencies documentation.Next Steps
Adding Externals
Learn how to add custom Pure Data externals
Performance Optimization
Optimize your patches for better performance
