juce-cmake-template: Modern CMake for JUCE Projects
Why I Built This Template
I am not a fan of Xcode. There, I said it. As someone who prefers VSCode for development, I was tired of being forced into Apple’s IDE ecosystem just to work with JUCE. So I created juce-cmake-template—a modern CMake-based starter that lets you build JUCE projects with your favorite editor.
What You Get
- Modern CMake: Uses CPM (C++ Package Manager) for automatic dependency management
- VSCode Ready: Works seamlessly with CMake Tools extension, includes debugging support
- No Xcode Required: Avoids Xcode project files completely
- Professional Structure: Separated headers/implementation, asset management, testing framework
- Multiple Plugin Formats: Supports VST3, AU, and Standalone formats
- C++20 Standard: Modern C++ features out of the box
Getting Started
Prerequisites
You’ll need:
- CMake 3.24 or later
- Xcode Command Line Tools (for macOS):
xcode-select --install
- A C++20 compatible compiler
Quick Build
The easiest way to get started:
git clone https://github.com/juanlittledevil/juce-cmake-template.git
cd juce-cmake-template
./build.sh
Manual Build
If you prefer more control:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
Run the Standalone App
open "./build/Source/JuceTemplate_artefacts/Release/Standalone/Juce Template.app"
Or if you’re using VSCode with the CMake Tools extension, just open the folder and hit Configure/Build.
What Makes This Different
Unlike traditional JUCE templates, this one includes:
- Automated Setup Script: Run
./setup-new-project.sh
to quickly configure a new plugin - Complete Testing Framework: Built-in unit tests with VSCode debugging integration
- Asset Management System: Organized directories for images, fonts, audio samples
- External Library Support: Easy integration of third-party libraries via CPM
- Professional Project Structure: Clean separation of concerns
Using as a Template
Creating a new project is simple:
cp -r /path/to/juce-cmake-template /path/to/MyNewPlugin
cd /path/to/MyNewPlugin
./setup-new-project.sh
The setup script will prompt you for project details like name, company, and plugin type—then automatically configure all the necessary files.
Why This Matters
Good tooling shouldn’t get in your way. Whether you’re prototyping a new effect or building the next great synthesizer, you should be able to use the tools you love. This template gives you the freedom to develop JUCE projects without being locked into a specific IDE, while providing modern C++ practices and professional project structure.
A Note on Platform Support
⚠️ Important: This template has only been tested on macOS as of September 2025. Windows and Linux support is expected but not yet verified. If you encounter issues on other platforms, please open an issue or contribute fixes!
Get Started Today
Check out juce-cmake-template on GitHub. Clone it, build something cool, and let me know what you create!
Building audio software? Follow me for more JUCE and audio development tips!