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_ENABLE_EXPERIMENTAL | OFF | Enable experimental features |
MYMPD_ENABLE_FLAC | ON | Enables flac support |
MYMPD_ENABLE_IPV6 | ON | Enables IPv6 |
MYMPD_ENABLE_ASAN | OFF | Enables build with address sanitizer |
MYMPD_ENABLE_LIBID3TAG | ON | Enables libid3tag support |
MYMPD_ENABLE_MYGPIOD | ON | Enables myGPIOd support |
MYMPD_ENABLE_LUA | ON | Enables lua support |
MYMPD_ENABLE_TSAN | OFF | Enables build with thread san |
MYMPD_ENABLE_UBSAN | OFF | Enables build with undefined behavior sanitizer |
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
htdocs
folder in the source directory - Debug output
- Included Debug info
- None
- Use this option to set your own compile and link options
Unit tests
- Set
MYMPD_BUILD_TESTING=ON
- Build as normal
- Run
make test