diff options
author | Benjamin Berg <bberg@redhat.com> | 2021-08-30 13:11:42 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2021-09-02 17:47:30 +0200 |
commit | f2e702d4dc22a04e6b660c63e77c93f269fb3818 (patch) | |
tree | 94bf38696e2342c163ecf629fb68808cee483011 /meson.build | |
parent | 46ed29945125c241fe9a103e8b4f565472d453ef (diff) | |
download | upower-f2e702d4dc22a04e6b660c63e77c93f269fb3818.tar.gz |
build: Support building upower with meson
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..122de7c --- /dev/null +++ b/meson.build @@ -0,0 +1,143 @@ +project('upower', 'c', + version: '0.99.13', + license: 'GPLv2+', + default_options: [ + 'buildtype=debugoptimized', + 'warning_level=1', + 'c_std=gnu99', + ], + meson_version: '>= 0.49.0') + +soversion = 3 +current = 1 +revision = 0 +libversion = '@0@.@1@.@2@'.format(soversion, current, revision) + +gnome = import('gnome') +i18n = import('i18n') + +cc = meson.get_compiler('c') + +# TODO: Get rid of these by including config.h where needed +add_project_arguments([ + '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), + '-DPACKAGE_VERSION="@0@"'.format(meson.project_version()), +], language: 'c') + +cdata = configuration_data() +cdata.set_quoted('GETTEXT_PACKAGE', meson.project_name()) +cdata.set_quoted('PACKAGE_VERSION', meson.project_version()) +cdata.set_quoted('VERSION', meson.project_version()) +cdata.set_quoted('PACKAGE_SYSCONF_DIR', get_option('sysconfdir')) + +glib_min_version = '2.56' + +glib_version_def = 'GLIB_VERSION_@0@_@1@'.format( + glib_min_version.split('.')[0], glib_min_version.split('.')[1]) +common_cflags = cc.get_supported_arguments([ + '-DGLIB_VERSION_MIN_REQUIRED=' + glib_version_def, + '-DGLIB_VERSION_MAX_ALLOWED=' + glib_version_def, +]) +add_project_arguments(common_cflags, language: 'c') + + +glib_dep = dependency('glib-2.0', version: '>=' + glib_min_version) +gobject_dep = dependency('gobject-2.0', version: '>=' + glib_min_version) +gio_dep = dependency('gio-2.0', version: '>=' + glib_min_version) +gio_unix_dep = dependency('gio-unix-2.0', version: '>=' + glib_min_version) + +xsltproc = find_program('xsltproc', required: get_option('gtk-doc') or get_option('man')) + +# Resolve OS backend +os_backend = get_option('os_backend') +if os_backend == 'auto' + # Likely needs to be updated when options are added + if host_machine.system() in ['linux', 'freebsd', 'openbsd'] + os_backend = host_machine.system() + else + os_backend = 'dummy' + endif +endif +cdata.set_quoted('BACKEND', os_backend) + +# Backend specific dependencies +gudev_dep = dependency('', required: false) +idevice_dep = dependency('', required: false) +plist_dep = dependency('', required: false) +gobject_introspection = dependency('gobject-introspection-1.0', required: get_option('introspection')) + + +if os_backend == 'linux' + gudev_dep = dependency('gudev-1.0', version: '>= 235') + idevice_dep = dependency('libimobiledevice-1.0', + version : '>= 0.9.7', + required : get_option('idevice')) + + if idevice_dep.found() + plist_dep = dependency('libplist-2.0', required: false) + if not plist_dep.found() + plist_dep = dependency(libplist) + endif + endif +endif + +historydir = get_option('historydir') +if historydir == '' + historydir = get_option('prefix') / get_option('localstatedir') / 'lib' / 'upower' +endif + +udevrulesdir = get_option('udevrulesdir') +if udevrulesdir == 'auto' + udev_dep = dependency('udev', required: true) + udevrulesdir = udev_dep.get_pkgconfig_variable('udev_dir') +endif + +dbusdir = get_option('datadir') / 'dbus-1' +systemdsystemunitdir = get_option('systemdsystemunitdir') +if systemdsystemunitdir == '' + systemd_dep = dependency('systemd') + systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir') +endif + +# Generate configuration file +config_h = configure_file(output: 'config.h', configuration: cdata) + +subdir('etc') +subdir('rules') +subdir('po') +subdir('dbus') +subdir('libupower-glib') +subdir('src') +subdir('tools') +subdir('doc') + +pkgconfig = import('pkgconfig') +pkgconfig.generate( + name: 'upower-glib', + description: 'UPower is a system daemon for managing power devices', + version: meson.project_version(), + libraries: libupower_glib, + requires: [glib_dep, gobject_dep], + subdirs: 'libupower-glib', +) + +output = [] +output += 'UPower ' + meson.project_version() +output += 'System Paths' +output += ' prefix: ' + get_option('prefix') +output += ' libdir: ' + get_option('libdir') +output += ' libexecdir: ' + get_option('prefix') / get_option('libexecdir') +output += ' bindir: ' + get_option('prefix') / get_option('bindir') +output += ' sbindir: ' + get_option('prefix') / get_option('datadir') +output += ' datadir: ' + get_option('prefix') / get_option('sbindir') +output += ' sysconfdir: ' + get_option('sysconfdir') +output += ' localstatedir: ' + get_option('prefix') / get_option('localstatedir') +output += ' historydir: ' + historydir + +output += '\nFeatures' +output += ' Backend: ' + os_backend +output += ' libimobiledevice support: ' + idevice_dep.found().to_string() +output += ' Building api docs: ' + get_option('gtk-doc').to_string() +output += ' Building man pages: ' + get_option('man').to_string() + +message('\n'+'\n'.join(output)+'\n') |