Skip to content

Switch build system to Ninja and fix JUCE 8.0 compatibility - #1

Merged
lucaromagnoli merged 4 commits into
mainfrom
use-ninja-build
Nov 30, 2025
Merged

lucaromagnoli merged 4 commits into
mainfrom
use-ninja-build

Conversation

@lucaromagnoli

@lucaromagnoli lucaromagnoli commented Nov 30, 2025 •

Copy link
Copy Markdown
Owner

This PR switches the build system from Unix Makefiles to Ninja and fixes compilation errors for JUCE 8.0 compatibility.

Changes

Build System

  • Updated Makefile to use -G Ninja when configuring CMake
  • Updated README to document Ninja as a prerequisite
  • Added note about generator selection in build instructions

JUCE 8.0 Compatibility Fixes

  • Replace deprecated JuceHeader.h includes with individual module includes via src/JuceHeader.h
  • Fix int64_t type usage (add cstdint includes where needed)
  • Update AudioPluginInstance API (remove getAudioProcessor(), use getParameters() directly)
  • Fix FFT constructor calls to use Order parameter
  • Update FileChooser API to use launchAsync instead of browseForFileToOpen
  • Fix ProgressBar initialization in constructor
  • Fix vector.contains() calls to use std::find
  • Use addDefaultFormats() for plugin format manager instead of manual VST3 format addition

Benefits

  • Faster incremental builds with Ninja
  • Better parallel build performance
  • More efficient dependency tracking
  • Full compatibility with JUCE 8.0

Testing

  • Makefile updated to use Ninja
  • README documentation updated
  • All compilation errors fixed
  • Build tested locally (pending clean build)

- Update Makefile to use Ninja generator instead of Unix Makefiles
- Update README to document Ninja as a prerequisite
- Add note about generator selection in build instructions
- Replace deprecated JuceHeader.h includes with individual module includes
- Fix int64_t type usage (add cstdint includes)
- Update AudioPluginInstance API (remove getAudioProcessor, use getParameters directly)
- Fix FFT constructor calls to use Order parameter
- Update FileChooser API to use launchAsync
- Fix ProgressBar initialization
- Fix vector contains() calls to use std::find
- Add addDefaultFormats() for plugin format manager
- Fix trailing whitespace
- Apply clang-format to all C++ files
- Reorder includes in MainComponent.h (JuceHeader.h before other local includes)
- Reorder includes in MainWindow.h (JuceHeader.h before MainComponent.h)
@lucaromagnoli
lucaromagnoli merged commit 0b94dc0 into main Nov 30, 2025
1 check passed
@lucaromagnoli
lucaromagnoli deleted the use-ninja-build branch November 30, 2025 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant