Use the build system “meson” (close #32)

Replace the build system “setuptools” with “meson”.
This commit is contained in:
coderkun 2022-06-05 18:13:22 +02:00
commit fac7a85566
37 changed files with 848 additions and 361 deletions

View file

@ -12,62 +12,42 @@ Dependencies:
* "GTK":http://www.gtk.org 3 (>= 3.22) ("python-gobject":https://live.gnome.org/PyGObject)
* "Avahi":http://www.avahi.org (optional)
* "python-keyring":http://pypi.python.org/pypi/keyring (optional)
* "python-setuptools":https://pypi.python.org/pypi/setuptools (building)
* "meson":https://mesonbuild.com/ and "ninja":https://ninja-build.org/ (building)
Additionally a "MPD":http://www.musicpd.org server (version >= 0.21.0) is required at runtime.
h2. Building
Build the application with _setuptools_:
Build the application with _meson_ and _ninja_:
bc. $ python3 setup.py build
bc. $ meson build
$ ninja -C build
h2. Running/Testing
For testing the application and running it without (system-wide) installation, donwload/clone the code, build it as described above and then use _setuptools_ to install it for the current user:
For testing the application and running it without (system-wide) installation,
donwload/clone the code, build it with the @--prefix@ option and install it
with @ninja@:
bc. $ python3 setup.py develop --user
bc. $ meson --prefix $(pwd)/install build
$ ninja -C build
$ ninja -C build install
After that you can run it with
After that you can run it with _mesons_ @devenv@ command:
bc. $ ~/.local/bin/mcg
or if _~/.local/bin/_ is on your PATH
bc. $ mcg
bc. $ meson devenv -C build src/mcg
h2. Installing
Install the application system-wide with _setuptools_:
Install the application system-wide with _meson_ (after building):
bc. # python3 setup.py install
bc. $ ninja -C build install
Note: _On Linux using the distributions package manager is the preferred way of installing applications system-wide._
h2. Packaging
Create a distribution package with _setuptools_:
bc. $ python3 setup.py sdist
h2. Cover/image configuration
Since MPD itself does not provide the cover/image/album art binaries, yet, _mcg_ has to look for them itself. In order to find the images a base folder has to be configured on the Connection tab as “Image Directory”. This value can either be a local (absolute) folder (e.g. /home/user/music/) or an http URL (e.g. http://localhost/music/). _mcg_ then adds the (relative) folder of the audio file to this paths and tries different names for the actual file:
# the album name
# “cover”
# “folder”
The following file extensions are used:
# png
# jpg
The first combination that results in an existing file is used as cover image. If no matching file exists, _mcg_ will try to traverse the directory for any image file as fallback—this is done for local paths only though, not for http URLs.
Note: _On Linux using the distributions package manager is the preferred way
of installing applications system-wide._
h2. Screenshots