All Projects → remymuller → juce-cmake

remymuller / juce-cmake

Licence: MIT License
CMake find module for the JUCE library

Programming Languages

CMake
9771 projects

Labels

Projects that are alternatives of or similar to juce-cmake

Roboverb
A VST / VST3 / AU / LV2 Reverb Plugin
Stars: ✭ 48 (+45.45%)
Mutual labels:  juce
simple-reverb
A simple reverb made with the JUCE DSP module
Stars: ✭ 43 (+30.3%)
Mutual labels:  juce
Lemons
A library of utilities and building blocks for JUCE-based apps and plugins
Stars: ✭ 28 (-15.15%)
Mutual labels:  juce
pMix2
pMix - a preset interpolator, plug-in chainer and Faust IDE written with JUCE
Stars: ✭ 84 (+154.55%)
Mutual labels:  juce
juce faustllvm
JUCE Module for the libfaust JIT compiler
Stars: ✭ 32 (-3.03%)
Mutual labels:  juce
KnobKraft-orm
The KnobKraft Orm - The free modern cross-platform MIDI Sysex Librarian
Stars: ✭ 100 (+203.03%)
Mutual labels:  juce
juce-plugin-ci
Cross-platform CI for JUCE audio plugins with Github Actions
Stars: ✭ 51 (+54.55%)
Mutual labels:  juce
melatonin audio sparklines
Sparklines For JUCE AudioBlocks
Stars: ✭ 60 (+81.82%)
Mutual labels:  juce
JucyFluttering
A simple iOS &Android example for how to integrate Flutter (Dart) as user interface and JUCE (C++) as backend.
Stars: ✭ 82 (+148.48%)
Mutual labels:  juce
juce-cookbook
Collection of tutorials & resources for the C++ library JUCE
Stars: ✭ 58 (+75.76%)
Mutual labels:  juce
pamplejuce
A JUCE Plugin CI template. JUCE 7 & Catch2 with macOS notarization and Windows EV code signing on Github Actions
Stars: ✭ 115 (+248.48%)
Mutual labels:  juce
PhaseVocoder
A C++ based phase vocoder example that allows pitch and timescale modifications of incoming signals. UI built with Juce.
Stars: ✭ 44 (+33.33%)
Mutual labels:  juce
JUCE ARA
The JUCE cross-platform C++ framework, augmented with support for the Celemony ARA API
Stars: ✭ 32 (-3.03%)
Mutual labels:  juce
popsicle
Popsicle aims to bridge the JUCE c++ framework to python.
Stars: ✭ 102 (+209.09%)
Mutual labels:  juce
juceSynths
Collection of JUCE synthesisers utilising the Maximilian library.
Stars: ✭ 78 (+136.36%)
Mutual labels:  juce
Amalgamate
A tool for creating an amalgamation from C and C++ sources. Forked from https://github.com/vinniefalco/Amalgamate.
Stars: ✭ 17 (-48.48%)
Mutual labels:  juce
TD-JUCE
JUCE audio and VSTs in TouchDesigner
Stars: ✭ 29 (-12.12%)
Mutual labels:  juce
ChowPhaser
Phaser effect based loosely on the Schulte Compact Phasing 'A'
Stars: ✭ 51 (+54.55%)
Mutual labels:  juce
DAFx19-Gamelanizer
Accompanying material for the paper 'A Real-Time Audio Effect Plug-In Inspired by the Processes of Traditional Indonesian Gamelan Music'
Stars: ✭ 33 (+0%)
Mutual labels:  juce
Bad-Circuit-Modelling
Correct modelling of incorrect circuits
Stars: ✭ 27 (-18.18%)
Mutual labels:  juce

juce-cmake

This project is an attempt at providing CMake support for the JUCE library, inspired by the standard CMake module FindBoost.

Thanks to the simple JUCE Module Format specifications, intermodule and external dependencies are resolved by inspecting each module header file for properties and configuration flags. This is similar to the way the Projucer handles modules.

Announcement

JUCE 6 now has built-in official cmake support which is almost a drop-in replacement for juce-cmake. Since there is no reason to duplicate efforts, juce-cmake will not be actively maintained anymore. Feel free to fork it if required.

Design goals

  • Avoid having to rely on the Projucer and allow pure CMake builds.
  • Try to favour standard CMake constructs over helper functions as much as possible.
  • Rely on find_package to locate and configure JUCE.
  • Rely on INTERFACE targets for each module to propagate transitive dependencies.
  • Rely on target_sources to postpone building the JUCE sources with the dependent target.
  • Avoid polluting the source directory with JuceLibraryCode, instead favour autogenerated files in the build directory.
  • support multiple calls to find_package(JUCE) to allow multiple sub projects to be built with different modules

Example

cmake_minimum_required(VERSION 3.0)

project(HelloWorld)

find_package(JUCE REQUIRED 
	COMPONENTS 
		juce_core
		juce_data_structures
		juce_events
		juce_graphics
		juce_gui_basics
		juce_gui_extra
)

set(SOURCES
	Main.cpp
	MainComponent.h
	MainComponent.cpp
)

add_executable(${PROJECT_NAME} ${SOURCES})
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE true)
target_link_libraries(${PROJECT_NAME} ${JUCE_LIBRARIES})
source_group(Source FILES ${SOURCES})

List of similar projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].