]> git.ipfire.org Git - thirdparty/util-linux.git/commit - libblkid/meson.build
meson: add second build system
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 23 Feb 2020 18:42:55 +0000 (19:42 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 17 Mar 2021 14:07:27 +0000 (15:07 +0100)
commitd4c880d5a4339d3865cbd7d30264785cd3794322
tree943223141e6c9b6d17566917c7f91b5ec27cfb2e
parent9fb5486c27300082c716df48058cdb82fb66756e
meson: add second build system

To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install

v2:
- Optional items are now based on the 'feature' feature in meson.
  Built libraries which are disabled turn into disabler() objects
  and also poison any executables which link to them.

What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
  man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
  ./configure settings

Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
  are all used, so that should be fine. In the build system, some
  files should be skipped, but that is probably not always done properly.
  Getting this right might require some testing of various build option
  combinations to get the details right.

Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???

Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
  autogenerated .pc file. Not sure if they should be there or not. If
  necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
  sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
  anyway, so maybe we could simplify things but not implementing it at
  all under meson?
22 files changed:
.gitignore
disk-utils/meson.build [new file with mode: 0644]
include/meson.build [new file with mode: 0644]
lib/meson.build [new file with mode: 0644]
libblkid/meson.build [new file with mode: 0644]
libfdisk/meson.build [new file with mode: 0644]
libmount/meson.build [new file with mode: 0644]
libmount/python/meson.build [new file with mode: 0644]
libsmartcols/meson.build [new file with mode: 0644]
libuuid/meson.build [new file with mode: 0644]
login-utils/meson.build [new file with mode: 0644]
meson.build [new file with mode: 0644]
meson_options.txt [new file with mode: 0644]
misc-utils/meson.build [new file with mode: 0644]
po/LINGUAS [new file with mode: 0644]
po/meson.build [new file with mode: 0644]
sys-utils/meson.build [new file with mode: 0644]
term-utils/meson.build [new file with mode: 0644]
tests/functions.sh
tests/run.sh
text-utils/meson.build [new file with mode: 0644]
tools/meson-make-symlink.sh [new file with mode: 0755]