2019-01-24 06:00:29 -08:00
|
|
|
project('PackageKit', 'c',
|
2022-12-01 10:56:48 -08:00
|
|
|
version : '1.2.7',
|
2019-01-24 06:00:29 -08:00
|
|
|
license : 'LGPL-2.1+',
|
2020-10-21 07:25:16 -07:00
|
|
|
meson_version : '>=0.50',
|
2019-01-24 06:00:29 -08:00
|
|
|
default_options : ['warning_level=2', 'c_std=c99'],
|
|
|
|
)
|
|
|
|
|
|
|
|
gnome = import('gnome')
|
|
|
|
i18n = import('i18n')
|
|
|
|
pkg = import('pkgconfig')
|
|
|
|
|
2021-01-11 13:41:45 -08:00
|
|
|
glib_dep = dependency('glib-2.0', version: '>=2.62')
|
2019-01-24 06:00:29 -08:00
|
|
|
gobject_dep = dependency('gobject-2.0')
|
|
|
|
gio_dep = dependency('gio-2.0')
|
|
|
|
gio_unix_dep = dependency('gio-unix-2.0', version: '>=2.16.1')
|
|
|
|
gmodule_dep = dependency('gmodule-2.0', version: '>=2.16.1')
|
|
|
|
sqlite3_dep = dependency('sqlite3')
|
|
|
|
polkit_dep = dependency('polkit-gobject-1', version: '>=0.98')
|
|
|
|
if polkit_dep.version().version_compare('>=0.114')
|
|
|
|
add_project_arguments ('-DHAVE_POLKIT_0_114=1', language: 'c')
|
|
|
|
endif
|
|
|
|
|
|
|
|
libsystemd = []
|
|
|
|
if get_option('systemd')
|
|
|
|
libsystemd = dependency('libsystemd', version: '>=213')
|
|
|
|
systemd_system_unit_dir = get_option('systemdsystemunitdir')
|
2020-10-21 07:55:51 -07:00
|
|
|
systemd_user_unit_dir = get_option('systemduserunitdir')
|
|
|
|
if systemd_system_unit_dir == '' or systemd_user_unit_dir == ''
|
2019-01-24 06:00:29 -08:00
|
|
|
systemd = dependency('systemd')
|
2020-10-21 07:55:51 -07:00
|
|
|
endif
|
|
|
|
if systemd_system_unit_dir == ''
|
2019-01-24 06:00:29 -08:00
|
|
|
systemd_system_unit_dir = systemd.get_pkgconfig_variable('systemdsystemunitdir')
|
|
|
|
endif
|
2020-10-21 07:55:51 -07:00
|
|
|
if systemd_user_unit_dir == ''
|
|
|
|
systemd_user_unit_dir = systemd.get_pkgconfig_variable('systemduserunitdir')
|
|
|
|
endif
|
2019-01-24 06:00:29 -08:00
|
|
|
|
2020-10-21 20:02:31 -07:00
|
|
|
add_project_arguments ('-DHAVE_SYSTEMD_SD_DAEMON_H=1', language: 'c')
|
2019-01-24 06:00:29 -08:00
|
|
|
add_project_arguments ('-DHAVE_SYSTEMD_SD_LOGIN_H=1', language: 'c')
|
|
|
|
else
|
|
|
|
if get_option('offline_update')
|
|
|
|
error('Offline updates requires Systemd, use -Dsystemd=true to enable it or -Doffline_update=false to disable offline updates')
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
elogind = []
|
|
|
|
if get_option('elogind')
|
|
|
|
elogind = dependency('elogind', version: '>=229.4')
|
|
|
|
add_project_arguments ('-DHAVE_SYSTEMD_SD_LOGIN_H=1', language: 'c')
|
|
|
|
endif
|
|
|
|
|
|
|
|
if get_option('local_checkout')
|
|
|
|
add_project_arguments ('-DPK_BUILD_LOCAL=1', language: 'c')
|
|
|
|
endif
|
|
|
|
|
|
|
|
if get_option('daemon_tests')
|
|
|
|
add_project_arguments ('-DPK_ENABLE_DAEMON_TESTS=1', language: 'c')
|
|
|
|
endif
|
|
|
|
|
|
|
|
if dependency('ply-boot-client', version: '>=0.9.5', required: false).found()
|
|
|
|
add_project_arguments ('-DPLYMOUTH_0_9_5=1', language: 'c')
|
|
|
|
endif
|
|
|
|
|
2020-04-15 10:08:15 -07:00
|
|
|
# Ensure functions like realpath(3) and other "default" functions are available
|
|
|
|
add_project_arguments ('-D_DEFAULT_SOURCE', language: 'c')
|
|
|
|
|
2019-01-24 06:00:29 -08:00
|
|
|
# Avoid g_simple_async_result deprecation warnings in glib 2.46+
|
|
|
|
add_project_arguments ('-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_44', language: 'c')
|
|
|
|
|
|
|
|
# allow the daemon to include library files directly
|
|
|
|
add_project_arguments ('-DPK_COMPILATION', language: 'c')
|
|
|
|
|
|
|
|
conf = configuration_data()
|
|
|
|
conf.set_quoted('DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
|
|
|
|
conf.set_quoted('LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
|
|
|
|
conf.set_quoted('SYSCONFDIR', get_option('sysconfdir'))
|
|
|
|
|
2020-03-11 06:19:22 -07:00
|
|
|
conf.set_quoted('PROJECT_NAME', meson.project_name())
|
|
|
|
conf.set_quoted('PROJECT_VERSION', meson.project_version())
|
|
|
|
|
2019-01-24 06:00:29 -08:00
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
if cc.has_function('setpriority')
|
|
|
|
conf.set('HAVE_SETPRIORITY', '1')
|
|
|
|
endif
|
|
|
|
if cc.has_function('clearenv')
|
|
|
|
conf.set('HAVE_CLEARENV', '1')
|
|
|
|
endif
|
|
|
|
if cc.has_header('unistd.h')
|
|
|
|
conf.set('HAVE_UNISTD_H', '1')
|
|
|
|
endif
|
|
|
|
|
|
|
|
config_header = configure_file(
|
|
|
|
output: 'config.h',
|
|
|
|
configuration: conf,
|
|
|
|
)
|
|
|
|
|
|
|
|
config_dep = declare_dependency(
|
|
|
|
sources: config_header,
|
|
|
|
include_directories: include_directories('.')
|
|
|
|
)
|
|
|
|
|
|
|
|
pk_db_dir = join_paths(get_option('localstatedir'), 'lib', 'PackageKit')
|
|
|
|
local_state_dir = get_option('localstatedir')
|
|
|
|
test_data_dir = join_paths(meson.source_root(), 'data', 'tests')
|
|
|
|
package_data_dir = get_option('datadir')
|
|
|
|
package_locale_dir = join_paths(get_option('prefix'), get_option('datadir'), 'locale')
|
|
|
|
pk_plugin_dir = join_paths(get_option('prefix'), get_option('libdir'), 'packagekit-backend')
|
|
|
|
|
|
|
|
# work both in C and C++
|
|
|
|
add_project_arguments(
|
|
|
|
'-Wall',
|
|
|
|
'-Wcast-align', '-Wno-uninitialized',
|
|
|
|
'-Wmissing-declarations',
|
|
|
|
'-Wredundant-decls',
|
|
|
|
'-Wpointer-arith',
|
|
|
|
'-Wcast-align',
|
|
|
|
'-Wwrite-strings',
|
|
|
|
'-Winit-self',
|
|
|
|
'-Wreturn-type',
|
|
|
|
'-Wformat-nonliteral',
|
|
|
|
'-Wformat-security',
|
|
|
|
'-Wmissing-include-dirs',
|
|
|
|
'-Wmissing-format-attribute',
|
|
|
|
'-Wclobbered',
|
|
|
|
'-Wempty-body',
|
|
|
|
'-Wignored-qualifiers',
|
|
|
|
'-Wsign-compare',
|
|
|
|
'-Wtype-limits',
|
|
|
|
'-Wuninitialized',
|
|
|
|
'-Wno-unused-parameter',
|
|
|
|
language: ['c', 'cpp']
|
|
|
|
)
|
|
|
|
|
|
|
|
# work only in C
|
|
|
|
add_project_arguments(
|
|
|
|
'-Waggregate-return',
|
|
|
|
'-Wdeclaration-after-statement',
|
|
|
|
'-Wshadow',
|
|
|
|
'-Wno-strict-aliasing',
|
|
|
|
'-Winline',
|
|
|
|
'-Wmissing-parameter-type',
|
|
|
|
'-Woverride-init',
|
|
|
|
language: 'c'
|
|
|
|
)
|
|
|
|
|
|
|
|
subdir('po')
|
|
|
|
subdir('policy')
|
|
|
|
subdir('etc')
|
|
|
|
subdir('data')
|
|
|
|
subdir('lib')
|
|
|
|
subdir('src')
|
|
|
|
subdir('client')
|
|
|
|
subdir('backends')
|
|
|
|
subdir('contrib')
|
|
|
|
subdir('docs')
|