Skip to content

symboxtra/HulaLoop

Repository files navigation

Jenkins Server Status codecov CodeFactor License: GPL v3

HulaLoop

Important Commands

A rough set of commands needed to build the project.

Git

Clone the project:

git clone --recurse-submodule https://github.com/symboxtra/HulaLoop

Update an already cloned submodule:

git submodule update --remote --merge

Dependencies

Debian-based Linux

Check which version of Debian you have by running

cat /etc/debian_version

If running Debian Stretch:

sudo apt install build-essential cmake libgl1-mesa-dev libsndfile-dev

IMPORTANT: This application requires Qt 5.9.5+. This typically has to be installed using the Qt GUI installer since apt on Debian Stretch does not backport an up-to-date version. Be sure to install the extra Qt Charts package as the GUI relies on it.

If running Debian Buster:

sudo apt install build-essential cmake libgl1-mesa-dev libpulse-dev qt5-default libqt5charts5 libqt5quickcontrols2-5

If using GNOME (fixes system tray icons and notifications):

sudo apt install gnome-shell-extension-appindicator

If you want to compile documentation:

sudo apt install python-sphinx doxygen graphviz help2man
python -m pip install --user recommonmark

Redhat-based Linux

Required:

sudo dnf install gcc-c++ make cmake qt5-devel qt5-qtcharts qt5-qtquickcontrols2-devel pulseaudio-libs-devel

To enable the system tray icon and notifications the Topicons plus extension must be installed via dnf and enabled under Tweaks->Extensions.

sudo dnf install gnome-shell-extension-topicons-plus

If you want to compile documentation:

sudo dnf install python-sphinx doxygen graphviz help2man
python -m pip install --user recommonmark

If you want to generate RPM packages:

sudo dnf install rpm-build

OSX

Install brew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install g++ qt build-essential cmake portaudio libsndfile

IMPORTANT: JACK2 must be installed using the GUI installer since brew only includes JACK1.

If you want to compile documentation:

brew install sphinx-doc doxygen graphviz
python -m pip install recommonmark

Windows

  • Install Qt (including Charts)
  • Install Visual Studio or the MSVC build tools
  • Install Chocolatey (package manager for Windows)
  • Install Chocolatey packages
choco install git
choco install cmake
choco install doxygen
  • Good luck...

CMake

mkdir build
cd build
cmake ..
cmake --build .
./bin/<executable name>

Windows Tips

We've found the msbuild output on Windows to be rather unruly. Passing the /verbosity:minimal or /v:m options at build time makes the output much more make-like. Relevant information, warnings, and errors are still displayed.

cmake --build . -- /verbosity:minimal
cmake --build . -- /v:m

CTest

All tests:

cd build
ctest -C Debug -V

Without checks for memory leaks:

cd build
ctest -C Debug -V -E memcheck

Only memory leak checks:

cd build
ctest -C Debug -V -R memcheck

Build Tutorials and Documentation

cd docs
make html # Runs Doxygen and Sphinx builds
cd build-docs/html
# python -m SimpleHTTPServer is a simple way to serve these
# Open localhost:8000 in your browser to view

Build Developer Documentation

This is built with the first option. To build separetly, use:

cd docs
doxygen # Finds default Doxyfile
cd build-doxygen/html