Skip to content

tobanteAudio/juce-6-demo

Repository files navigation

JUCE 6 Preview - Demo Project

License Linux macOS Windows Coverage
License CircleCi Build Status Build status codecov

Features

  • CMake build
  • External juce modules
  • Catch2 unit tests
  • Sanitizers
  • Code coverage (lcov)
  • CI (travis, appveyor & circleci)
  • clang-format
  • clang-tidy

ToDo

  • automatic packaging & signing

Quick Start

Simple project testing the new beta branch of JUCE version 6. Reverb plugin based on the JUCE dsp classes. Links to unit tests written with Catch2. Tested on Windows, macOS & Linux.

JUCE now uses CMake. Awesome!

CONFIG=Release make

or:

cmake -S. -Bbuild
cmake --build build --config Release
cd build
ctest -C Release

Tools

make sanitize           # sanitizers: asan, uban
make coverage report    # files: build_coverage/lcov/index.html
make format             # run clang-format

Tested On

Windows

  • Version 10.0.18362 Build 18362
  • Visual Studio 2019 (16.5.3)
  • CMake 3.16.2

Windows Issues

  • None

Apple

  • Version 10.15.2
  • Xcode 10.4
  • CMake 3.16.4
    • Generators: Xcode, Ninja

Apple Issues

  • None

Linux

First:

  • PopOS (Ubuntu)
  • GCC 9.2, Clang 9, Clang trunk
  • CMake 3.17.2
    • Generators: Makefile, Ninja

Second:

  • RaspberryPi 3
    • Raspbian 4.19
  • Clang 9
  • CMake 3.17.2
    • Generator: Ninja

Linux Issues

Error on Raspberry Pi3 during cmake configuration. Cannot link:

/usr/bin/ld:
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o:
in function `std::__atomic_base<long long>::operator long long() const':

/usr/include/c++/8/bits/atomic_base.h:396: undefined reference to
`__atomic_load_8'

/usr/bin/ld:
extras/Build/juceaide/CMakeFiles/juceaide.dir/__/__/__/modules/juce_core/juce_core.cpp.o:
in function `std::__atomic_base<long long>::operator^=(long long)':

/usr/include/c++/8/bits/atomic_base.h:344: undefined reference to
`__atomic_fetch_xor_8'

Other projects using JUCE and a custom CMake config worked on this device.