upower/meson.build
2022-02-23 17:46:51 +01:00

145 lines
4.8 KiB
Meson

project('upower', 'c',
version: '0.99.16',
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)
m_dep = cc.find_library('m', required: true)
xsltproc = find_program('xsltproc', disabler: true, 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', required: true)
endif
cdata.set10('HAVE_IDEVICE', true)
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') / 'rules.d'
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')