Compiling with cmake#
myMPD uses cmake as build system.
Example: run cmake, build myMPD in the directory build and install the binaries in /usr/bin.
# Build as user
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .
# binaries are placed in build/bin
make -C build
# Run install as root
sudo make -C build install
myMPD specific cmake options#
OPTION |
DEFAULT |
DESCRIPTION |
|---|---|---|
MYMPD_BUILD_TESTING |
OFF |
Enables building of unit tests |
MYMPD_DOC |
ON |
Installs documentation |
MYMPD_DOC_HTML |
OFF |
Creates and installs the html documentation |
MYMPD_EMBEDDED_ASSETS |
ON |
Embed assets in binary, default ON, OFF for Debug |
MYMPD_EMBEDDED_LIBMPDCLIENT |
OFF |
Use embedded libmpdclient |
MYMPD_ENABLE_ASAN |
OFF |
Enables build with address sanitizer |
MYMPD_ENABLE_EXPERIMENTAL |
OFF |
Enable experimental features |
MYMPD_ENABLE_FLAC |
ON |
Enables flac support |
MYMPD_ENABLE_IPV6 |
ON |
Enables IPv6 |
MYMPD_ENABLE_LIBID3TAG |
ON |
Enables libid3tag support |
MYMPD_ENABLE_LUA |
ON |
Enables lua support |
MYMPD_ENABLE_MYGPIOD |
ON |
Enables myGPIOd support |
MYMPD_ENABLE_TSAN |
OFF |
Enables build with thread sanitizer |
MYMPD_ENABLE_UBSAN |
OFF |
Enables build with undefined behavior sanitizer |
MYMPD_ENABLE_UTF8 |
ON |
Enables utf8 support with utf8proc |
MYMPD_MANPAGES |
ON |
Creates and installs manpages |
MYMPD_MINIMAL |
OFF |
Enables minimal myMPD build, disables all MYMPD_ENABLE_* flags |
MYMPD_STARTUP_SCRIPT |
ON |
Installs the startup script. Valid values: ON, OFF, SYSTEMD, OPENRC, SYSVINIT, FREEBSD |
cmake build types#
Release, MinSizeRel
Uses predefined compile and link options for a release build
Embed assets in binary
No debug output
Strips binary
RelWithDebInfo
Uses predefined compile and link options for a release build
Embed assets in binary
No debug output
Included Debug info
Debug
Uses predefined compile and link options for a debug build
Assets are served from the
htdocsfolder in the source directoryDebug output
Included Debug info
None
Use this option to set your own compile and link options
Unit tests#
Set
MYMPD_BUILD_TESTING=ONBuild as normal
Run
make test