2017-11-28 16:44:04 +01:00
|
|
|
option('runtime_libdir',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
2022-11-22 17:31:28 +01:00
|
|
|
description : 'install runtime libraries relative to libdir',
|
|
|
|
deprecated: true)
|
2017-11-28 16:44:04 +01:00
|
|
|
|
|
|
|
option('charsetalias_dir',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'directory for charset.alias dir (default to \'libdir\' if unset)')
|
|
|
|
|
|
|
|
option('gio_module_dir',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'load gio modules from this directory (default to \'libdir/gio/modules\' if unset)')
|
|
|
|
|
2022-11-30 14:45:34 +01:00
|
|
|
# FIXME: Deliberately not named runstatedir to avoid colliding with
|
|
|
|
# https://github.com/mesonbuild/meson/issues/4141; port to that when Meson
|
|
|
|
# supports it
|
|
|
|
option('runtime_dir',
|
|
|
|
type: 'string',
|
|
|
|
value: '',
|
|
|
|
description: 'Directory for transient runtime state [default: /run]')
|
|
|
|
|
2017-11-28 16:44:04 +01:00
|
|
|
option('selinux',
|
2018-11-20 12:55:26 +01:00
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
2017-11-28 16:44:04 +01:00
|
|
|
description : 'build with selinux support')
|
|
|
|
|
|
|
|
option('xattr',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
description : 'build with xattr support')
|
|
|
|
|
|
|
|
option('libmount',
|
2020-01-29 12:15:47 +01:00
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
2017-11-28 16:44:04 +01:00
|
|
|
description : 'build with libmount support')
|
|
|
|
|
|
|
|
option('man',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2023-12-20 15:04:11 +01:00
|
|
|
description : 'generate man pages (requires xsltproc)',
|
|
|
|
deprecated : 'man-pages')
|
|
|
|
|
|
|
|
option('man-pages',
|
|
|
|
type : 'feature',
|
2023-12-21 14:35:18 +01:00
|
|
|
value : 'auto',
|
2023-12-20 15:04:11 +01:00
|
|
|
description : 'generate man pages (requires rst2man)',
|
|
|
|
deprecated : { 'true': 'enabled', 'false': 'disabled' })
|
2017-11-28 16:44:04 +01:00
|
|
|
|
|
|
|
option('dtrace',
|
2024-05-15 22:09:46 +02:00
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
|
|
|
deprecated : { 'true': 'enabled', 'false': 'disabled' },
|
2017-11-28 16:44:04 +01:00
|
|
|
description : 'include tracing support for dtrace')
|
|
|
|
|
|
|
|
option('systemtap',
|
2024-05-15 22:48:44 +02:00
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
|
|
|
deprecated : { 'true': 'enabled', 'false': 'disabled' },
|
2017-11-28 16:44:04 +01:00
|
|
|
description : 'include tracing support for systemtap')
|
|
|
|
|
|
|
|
option('tapset_install_dir',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'path where systemtap tapsets are installed')
|
|
|
|
|
2020-06-25 23:08:05 +02:00
|
|
|
option('sysprof',
|
|
|
|
type : 'feature',
|
2024-05-16 20:57:38 +02:00
|
|
|
value : 'auto',
|
2020-06-25 23:08:05 +02:00
|
|
|
description : 'include tracing support for sysprof')
|
|
|
|
|
2023-11-29 11:26:37 +01:00
|
|
|
option('documentation',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Build API reference and tools documentation')
|
|
|
|
|
2017-11-28 16:44:04 +01:00
|
|
|
option('gtk_doc',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2023-11-29 11:26:37 +01:00
|
|
|
description : 'use gtk-doc to build documentation',
|
|
|
|
deprecated : 'documentation')
|
2018-04-24 22:36:50 +02:00
|
|
|
|
|
|
|
option('bsymbolic_functions',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
description : 'link with -Bsymbolic-functions if supported')
|
2018-05-15 20:05:50 +02:00
|
|
|
|
|
|
|
option('force_posix_threads',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Also use posix threads in case the platform defaults to another implementation (on Windows for example)')
|
2018-06-07 15:50:59 +02:00
|
|
|
|
2019-04-27 17:04:26 +02:00
|
|
|
option('tests',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
description : 'build tests')
|
|
|
|
|
2018-07-16 19:39:44 +02:00
|
|
|
option('installed_tests',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'enable installed tests')
|
2018-11-20 17:28:56 +01:00
|
|
|
|
|
|
|
option('nls',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
|
|
|
yield: true,
|
|
|
|
description : 'Enable native language support (translations)')
|
2019-03-13 12:47:36 +01:00
|
|
|
|
|
|
|
option('oss_fuzz',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'disabled',
|
|
|
|
description : 'Indicate oss-fuzz build environment')
|
2020-04-08 21:14:31 +02:00
|
|
|
|
2021-01-20 00:37:22 +01:00
|
|
|
option('glib_debug',
|
|
|
|
type : 'feature',
|
2024-08-25 19:29:53 +02:00
|
|
|
value : 'enabled',
|
2021-01-20 00:37:22 +01:00
|
|
|
yield : true,
|
2024-08-25 19:29:53 +02:00
|
|
|
description : 'Enable GLib debug infrastructure (distros typically want this disabled in production; see docs/macros.md)')
|
2021-01-20 00:37:22 +01:00
|
|
|
|
2020-04-08 21:14:31 +02:00
|
|
|
option('glib_assert',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
yield : true,
|
2024-08-25 19:25:51 +02:00
|
|
|
description : 'Enable GLib assertion (see docs/macros.md)')
|
2020-04-08 21:14:31 +02:00
|
|
|
|
|
|
|
option('glib_checks',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
yield : true,
|
2024-08-25 19:25:51 +02:00
|
|
|
description : 'Enable GLib checks such as API guards (see docs/macros.md)')
|
2020-10-01 15:47:36 +02:00
|
|
|
|
|
|
|
option('libelf',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
meson: simplify iconv lookups using Meson's builtin dependency lookup
iconv is complicated to look up. That complexity now resides in
Meson, since 0.60.0, via a `dependency('iconv')` lookup, so use that
instead.
No effort is made to support the old option for which type of iconv to
use. It was a false choice, because if only one was available, then
that's the only one you can use, and if both are available, the external
iconv shadows the builtin one and renders the builtin one unusable,
so there is still only one you can use.
This meant that when configuring glib with -Diconv=libc on systems that
had an external iconv, the configure check would detect a valid libc
iconv, try to use it, and then fail during the build because iconv.h
belongs to the external iconv and generates machine code using the
external iconv ABI, but fails to link to the iconv `find_library()`.
Meson handles this transparently.
2022-06-07 22:14:04 +02:00
|
|
|
description : 'Enable support for listing and extracting from ELF resource files with gresource tool')
|
gio: Optionally install trigger executables to architecture-specific paths
In Debian-style multiarch (libdir = lib/x86_64-linux-gnu or similar),
Red-Hat-style multilib (libdir = lib64 or lib) and Arch-style multilib
(libdir = lib or lib32), we have to run a separate version of
gio-querymodules to discover 32- or 64-bit modules on x86. Installing
modules in the directory used for each word size needs to trigger
recompilation of the correct modules list.
Debian, Fedora and Arch currently all have patches to facilitate this:
Debian moves gio-querymodules into ${libdir}/glib-2.0 and provides a
compat symlink in ${bindir}, while Fedora and Arch rename one or both
of the gio-querymodules executables to give it a -32 or -64 suffix.
We can avoid the need for these patches by making this a build option.
Doing this upstream has the advantage that the pkg-config metadata for
each architecture points to the correct executable and is in sync with
reality.
I'm using Debian's installation scheme with a separate directory here,
because the word-size suffix used in Fedora and Arch only works for the
common case of 32- and 64-bit multilib, and does not cover scenarios
where there can be more than one ABI with the same word size, such as
multiarch cross-compilation or alternative ABIs like x32.
Now that we have this infrastructure, it's also convenient to use it for
glib-compile-schemas. This works with /usr/share, so it only needs to
be run for one architecture (typically the system's primary
architecture), but using /usr/bin/glib-compile-schemas for the trigger
would result in either primary and secondary architectures trying to
overwrite each other's /usr/bin/glib-compile-schemas binaries, or a
circular dependency (the GLib library would have to depend on a
common package that contains glib-compile-schemas, but
glib-compile-schemas depends on the GLib library). Installing a
glib-compile-schemas binary in an architecture-specific location
alongside each GLib library bypasses this problem.
Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-07-14 15:24:33 +02:00
|
|
|
|
|
|
|
option('multiarch',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Install some helper executables in per-architecture locations')
|
2023-10-16 16:24:08 +02:00
|
|
|
|
|
|
|
option('gir_dir_prefix',
|
|
|
|
type: 'string',
|
|
|
|
description: 'Intermediate prefix for gir installation under ${prefix}')
|
2023-11-08 12:54:28 +01:00
|
|
|
|
2023-10-13 13:57:57 +02:00
|
|
|
option('introspection',
|
|
|
|
type: 'feature',
|
|
|
|
value: 'auto',
|
|
|
|
description: 'Enable generating introspection data (requires gobject-introspection)')
|
2024-07-24 14:10:10 +02:00
|
|
|
|
|
|
|
option('file_monitor_backend',
|
|
|
|
type : 'combo',
|
|
|
|
choices : ['auto', 'inotify', 'kqueue', 'libinotify-kqueue', 'win32'],
|
|
|
|
value : 'auto',
|
|
|
|
description : 'The name of the system API to use as a GFileMonitor backend')
|