You'll need the following dependencies:
- meson
- libaccounts-glib-dev
- libclutter-gtk-1.0-dev
- libdbus-glib-1-dev
- libgda-5.0-dev
- libgee-0.8-dev
- libglib2.0-dev
- libgpod-dev
- libgranite-dev >= 5.2.0
- libsignon-glib-dev >= 2.0
- libgstreamer1.0-dev
- libgstreamer-plugins-base1.0-dev
- libgtk-3-dev >= 3.22
- libjson-glib-dev
- libnotify-dev
- libpeas-dev
- libsoup2.4-dev
- libtagc0-dev
- libxml2-dev
- libzeitgeist-2.0-dev
- valac
It's recommended to create a clean build environment. Run meson to configure the build environment and then ninja to build
meson build --prefix=/usr
cd build
ninja
To install, use ninja install, then execute with io.elementary.music
sudo ninja install
io.elementary.music
You can run tests with ninja test, and reset the build environment with ninja clean.
You can use these options to configure your build:
build-plugins:trueto build plugins orfalseto ony compile the core and the applicationplugins: any oflastfm,audioplayer,cdromandipod, separated by commasprefix: the installation prefix
To define their values, use meson configure
# For instance, if you want to disable plugins:
meson configure -Dbuild-plugins=false
Music includes valadoc documentation for developers, to autogenerate them from git master enable valadoc:
meson configure -Ddocumentation=true
The compiled documentation in html format will appear in build/docs when you run ninja. Be aware that creating docs is very slow and it's a good idea to disable building them when you're not using them.
