|
|
|
@@ -1,63 +1,97 @@ |
|
|
|
# JUCE 6 Technical Preview |
|
|
|
|
|
|
|
__This branch is a technical preview of JUCE 6. It provides the opportunity to |
|
|
|
try out the new features and provide any feedback on how they can best work for |
|
|
|
you before the official release. Please use [this |
|
|
|
topic](https://forum.juce.com/t/juce6-technical-preview-branch/38699) on the |
|
|
|
JUCE forum to discuss the new features.__ |
|
|
|
|
|
|
|
## Getting Started with CMake |
|
|
|
|
|
|
|
For comprehensive documentation on JUCE's CMake API, see |
|
|
|
`docs/CMake API.txt` in this repo. |
|
|
|
|
|
|
|
### Building Examples |
|
|
|
|
|
|
|
To build the examples and extras bundled with JUCE, simply clone JUCE and then |
|
|
|
run: |
|
|
|
|
|
|
|
``` |
|
|
|
# Go to JUCE directory |
|
|
|
cd /path/to/cloned/JUCE |
|
|
|
# Configure build with all examples and extras enabled |
|
|
|
cmake -B cmake-build -DJUCE_BUILD_EXAMPLES=ON -DJUCE_BUILD_EXTRAS=ON |
|
|
|
# Build a specific target (building everything will take a long time!) |
|
|
|
cmake --build cmake-build --target DemoRunner |
|
|
|
``` |
|
|
|
|
|
|
|
### Using `add_subdirectory` |
|
|
|
|
|
|
|
The simplest way to include JUCE in your project is to add JUCE as a |
|
|
|
subdirectory of your project, and to include the line `add_subdirectory(JUCE)` |
|
|
|
in your project CMakeLists.txt. This will make the JUCE targets and helper |
|
|
|
functions available for use by your custom targets. |
|
|
|
|
|
|
|
### Using `find_package` |
|
|
|
|
|
|
|
To install JUCE globally on your system, you'll need to tell CMake where to |
|
|
|
place the installed files. As this is a preview branch, we recommend that you |
|
|
|
*avoid* installing to the default install location, and instead choose a path |
|
|
|
that you can easily delete and recreate when installing newer preview versions. |
|
|
|
|
|
|
|
``` |
|
|
|
# Go to JUCE directory |
|
|
|
cd /path/to/clone/JUCE |
|
|
|
# Configure build with library components only |
|
|
|
cmake -B cmake-build-install -DCMAKE_INSTALL_PREFIX=/path/to/JUCE/install |
|
|
|
# Run the installation |
|
|
|
cmake --build cmake-build-install --target install |
|
|
|
``` |
|
|
|
|
|
|
|
Make sure the dependent project CMakeLists.txt contains the line |
|
|
|
`find_package(JUCE CONFIG REQUIRED)`. This will make the JUCE modules and CMake |
|
|
|
helper functions available for use in the rest of your build. Then, run the |
|
|
|
build like so: |
|
|
|
|
|
|
|
``` |
|
|
|
# Go to project directory |
|
|
|
cd /path/to/my/project |
|
|
|
# Configure build, passing the JUCE install path you used earlier |
|
|
|
cmake -B cmake-build -DCMAKE_PREFIX_PATH=/path/to/JUCE/install |
|
|
|
# Build the project |
|
|
|
cmake --build cmake-build |
|
|
|
``` |
|
|
|
 |
|
|
|
|
|
|
|
JUCE is an open-source cross-platform C++ application framework used for rapidly |
|
|
|
developing high quality desktop and mobile applications, including VST, AU (and AUv3), |
|
|
|
RTAS and AAX audio plug-ins. JUCE can be easily integrated with existing projects or can |
|
|
|
be used as a project generation tool via the [Projucer](https://juce.com/discover/projucer), |
|
|
|
which supports exporting projects for Xcode (macOS and iOS), Visual Studio, Android Studio, |
|
|
|
Code::Blocks, CLion and Linux Makefiles as well as containing a source code editor and |
|
|
|
live-coding engine which can be used for rapid prototyping. |
|
|
|
|
|
|
|
## Getting Started |
|
|
|
|
|
|
|
The JUCE repository contains a [master](https://github.com/juce-framework/JUCE/tree/master) |
|
|
|
and [develop](https://github.com/juce-framework/JUCE/tree/develop) branch. The develop branch |
|
|
|
contains the latest bugfixes and features and is periodically merged into the master |
|
|
|
branch in stable [tagged releases](https://github.com/juce-framework/JUCE/releases) |
|
|
|
(the latest release containing pre-built binaries can be also downloaded from the |
|
|
|
[JUCE website](https://juce.com/get-juce)). |
|
|
|
|
|
|
|
JUCE projects can be managed with either the Projucer (JUCE's own project-configuration |
|
|
|
tool) or with CMake. |
|
|
|
|
|
|
|
### The Projucer |
|
|
|
|
|
|
|
The repository doesn't contain a pre-built Projucer so you will need to build it |
|
|
|
for your platform - Xcode, Visual Studio and Linux Makefile projects are located in |
|
|
|
[extras/Projucer/Builds](/extras/Projucer/Builds) |
|
|
|
(the minumum system requirements are listed in the __System Requirements__ section below). |
|
|
|
The Projucer can then be used to create new JUCE projects, view tutorials and run examples. |
|
|
|
It is also possible to include the JUCE modules source code in an existing project directly, |
|
|
|
or build them into a static or dynamic library which can be linked into a project. |
|
|
|
|
|
|
|
For further help getting started, please refer to the JUCE |
|
|
|
[documentation](https://juce.com/learn/documentation) and |
|
|
|
[tutorials](https://juce.com/learn/tutorials). |
|
|
|
|
|
|
|
### CMake |
|
|
|
|
|
|
|
Version 3.15 or higher is required for plugin projects, and strongly |
|
|
|
recommended for other project types. To use CMake, you will need to install it, |
|
|
|
either from your system package manager or from the [official download |
|
|
|
page](https://cmake.org/download/). For comprehensive documentation on JUCE's |
|
|
|
CMake API, see the [JUCE CMake documentation](/docs/CMake API.md). For examples |
|
|
|
which may be useful as starting points for new CMake projects, see the [CMake |
|
|
|
examples directory](/examples/CMake). |
|
|
|
|
|
|
|
#### Building Examples |
|
|
|
|
|
|
|
To use CMake to build the examples and extras bundled with JUCE, simply clone |
|
|
|
JUCE and then run the following commands, replacing "DemoRunner" with the name |
|
|
|
of the target you wish to build. |
|
|
|
|
|
|
|
cd /path/to/JUCE |
|
|
|
cmake . -B cmake-build -DJUCE_BUILD_EXAMPLES=ON -DJUCE_BUILD_EXTRAS=ON |
|
|
|
cmake --build cmake-build --target DemoRunner |
|
|
|
|
|
|
|
## Minimum System Requirements |
|
|
|
|
|
|
|
#### Building JUCE Projects |
|
|
|
|
|
|
|
- __macOS/iOS__: macOS 10.11 and Xcode 7.3.1 |
|
|
|
- __Windows__: Windows 8.1 and Visual Studio 2015 64-bit |
|
|
|
- __Linux__: GCC 4.8 |
|
|
|
- __Android__: Android Studio on Windows, macOS or Linux |
|
|
|
|
|
|
|
#### Deployment Targets |
|
|
|
|
|
|
|
- __macOS__: macOS 10.7 |
|
|
|
- __Windows__: Windows Vista |
|
|
|
- __Linux__: Mainstream Linux distributions |
|
|
|
- __iOS__: iOS 9.0 |
|
|
|
- __Android__: Jelly Bean (API 16) |
|
|
|
|
|
|
|
## Contributing |
|
|
|
|
|
|
|
For bug reports and features requests, please visit the [JUCE Forum](https://forum.juce.com/) - |
|
|
|
the JUCE developers are active there and will read every post and respond accordingly. When |
|
|
|
submitting a bug report, please ensure that it follows the |
|
|
|
[issue template](/.github/ISSUE_TEMPLATE.txt). |
|
|
|
We don't accept third party GitHub pull requests directly due to copyright restrictions |
|
|
|
but if you would like to contribute any changes please contact us. |
|
|
|
|
|
|
|
## License |
|
|
|
|
|
|
|
The core JUCE modules (juce_audio_basics, juce_audio_devices, juce_blocks_basics, juce_core |
|
|
|
and juce_events) are permissively licensed under the terms of the |
|
|
|
[ISC license](http://www.isc.org/downloads/software-support-policy/isc-license/). |
|
|
|
Other modules are covered by a |
|
|
|
[GPL/Commercial license](https://www.gnu.org/licenses/gpl-3.0.en.html). |
|
|
|
|
|
|
|
There are multiple commercial licensing tiers for JUCE, with different terms for each: |
|
|
|
- JUCE Personal (developers or startup businesses with revenue under 50K USD) - free |
|
|
|
- JUCE Indie (small businesses with revenue under 500K USD) - $40/month |
|
|
|
- JUCE Pro (no revenue limit) - $130/month |
|
|
|
- JUCE Educational (no revenue limit) - free for bona fide educational institutes |
|
|
|
|
|
|
|
For full terms see [LICENSE.md](LICENSE.md). |