1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
|
## Basic build commands
Using a Linux terminal...
~~~bash
$ cd drumstick-x.y.z
$ mkdir -p build
$ cmake -S . -B build
(or ccmake -S . -B build)
(or cmake-gui -S . -B build)
(or cmake -S . -B build -options, see below...)
~~~
For simple test/development scenarios you can also use Qmake, but the Qmake-based build system provides only minimal functionality compared to CMake.
By default, CMake generates Makefiles. You may also use Ninja instead, with the cmake option `-G Ninja` at configuration time.
~~~bash
$ cmake --build build
$ sudo cmake --install build
$ sudo ldconfig
(not needed if you only want STATIC_DRUMSTICK)
~~~
## Requirements
Minimum supported versions:
* CMake 3.16
* C++17 compiler
* Qt6 >= 6.2 (or Qt5 >= 5.9)
When using Qt6, Qt6Core5Compat is required for Drumstick::File
* For Linux: ALSA 1.x
* RT backends for
* Linux: ALSA
* macOS: CoreMIDI
* Windows: WinMM
* Unix: OSS
* Synthesizers (output backends): Sonivox, FluidSynth, Apple DLS Synth
* All: Network - ipMIDI (IPv4, IPv6): QtNetwork
* shared-mime-info 0.30
See http://freedesktop.org/wiki/Software/shared-mime-info
The utility "update-mime-database" must be executed after installing the library "drumstick-file" and the "drumstick.xml" file. This is automatically done by the cmake build system unless you defined DESTDIR. In this case, your package manager should perform it as a post-install step.
* Doxygen 1.5
See http://www.doxygen.org
If you want to generate the HTML documentation for the libraries
If you want to generate and install the man pages, the build system can do it if you have installed in your system the following packages:
* xsltproc program.
* docbook XSLT stylesheets.
The package names depend on the Linux distribution. For Debian they are:
xsltproc, docbook-xsl and docbook-xml. For openSUSE: libxslt, docbook_4, and
docbook-xsl-stylesheets.
RealtimeKit actions are called through DBus, so it is not a direct dependency.
## Optional CMake parameters
-DSTATIC_DRUMSTICK=YES|ON|1
Build static libraries instead of a shared object.
-DSTATIC_DRUMSTICK=NO|OFF|0
Build dynamic libraries (default).
-DCMAKE_BUILD_TYPE=Debug
Compile with debug flags enabled.
-DCMAKE_BUILD_TYPE=Release
Compile without debug flags, and optimization enabled.
-DCMAKE_CXX_FLAGS="-W -Wall"
Specify custom compilation flags.
-DCMAKE_INSTALL_PREFIX=/usr/local
Specify the desired install prefix.
-DUSE_DBUS=YES|ON|1
Build DBus support, required to use RealtimeKit.
-DUSE_DBUS=NO|OFF|0
Don't include DBus support (default).
-DBUILD_DOCS=YES|ON|1
Build Doxygen documentation and man pages (default in Unix).
-DBUILD_DOCS=NO|OFF|0
Don't build Doxygen documentation nor man pages.
Note: the last option only creates a "doxygen" target. You still need to build the
target yourself if you want to generate the actual documentation.
-DBUILD_UTILS=YES|ON|1
Build utilities and example programs (default).
-DBUILD_UTILS=NO|OFF|0
Don't build utilities and example programs.
-DBUILD_TESTING=YES|ON|1
Build unit tests (default).
-DBUILD_TESTING=NO|OFF|0
Don't build unit tests
-DBUILD_FRAMEWORKS=YES|ON|1
Build macOS style frameworks (default on macOS).
-DBUILD_FRAMEWORKS=NO|OFF|0
Don't build macOS style frameworks, build Unix style dynamic libraries (.dylib).
-DBUILD_ALSA=YES|ON|1
Build Drumstick::ALSA (default on Linux).
-DBUILD_ALSA=NO|OFF|0
Don't build Drumstick::ALSA (default on non Linux Operating Systems).
-DBUILD_FILE=YES|ON|1
Build Drumstick::File (default).
-DBUILD_FILE=NO|OFF|0
Don't build Drumstick::File.
-DBUILD_RT=YES|ON|1
Build Drumstick::RT (default).
-DBUILD_RT=NO|OFF|0
Don't build Drumstick::RT.
-DBUILD_WIDGETS=YES|ON|1
Build Drumstick::Widgets (default).
-DBUILD_WIDGETS=NO|OFF|0
Don't build Drumstick::Widgets.
-DUSE_NETWORK=YES|ON|1
Build the ipMIDI Network RT backend (default)
Triggers a fatal error at configuration time if libQtNetwork is not available.
-DUSE_NETWORK=NO|OFF|0
Don't build the ipMIDI Network RT backend.
-DUSE_PULSEAUDIO=YES|ON|1
Build the SonivoxEAS RT output backend (default).
Triggers a fatal error at configuration time if libpulse-simple is not available.
-DUSE_PULSEAUDIO=NO|OFF|0
Don't build the SonivoxEAS RT output backend.
Note: FluidSynth has also a PulseAudio driver, which is independent of the last option.
-DUSE_FLUIDSYNTH=YES|ON|1
Build the FluidSynth RT output backend (default).
Triggers a fatal error at configuration time if libfluidsynth is not available.
-DUSE_FLUIDSYNTH=NO|OFF|0
Don't build the FluidSynth RT output backend.
-DUSE_QT5=NO|OFF|0
Build with Qt6 (default).
Note: When using Qt6, the Core5Compat additional library is required for Drumstick::File.
-DUSE_QT5=YES|ON|1
Build with Qt5 instead of Qt6.
-DUSE_SONIVOX=YES|ON|1
Build Sonivox RT backend (default)
Triggers a fatal error at configuration time if libsonivox is not available.
-DUSE_SONIVOX=NO|OFF|0
Don't build SonivoxEAS RT output backend.
-DUSE_PIPEWIRE=YES|ON|1
Build FluidSynth RT backend with PipeWire support (default in Unix)
-DUSE_PIPEWIRE=NO|OFF|0
Don't link PipeWire support
|