project('gcr', 'c', version: '4.1.0', meson_version: '>= 0.59', license: 'GPL2+', ) gnome = import('gnome') i18n = import('i18n') pkgconfig = import('pkgconfig') # Versioning gcr_api_version = '4' gcr_version = meson.project_version() gcr_soversion = '4' gcr_version_array = gcr_version.split('.') gcr_major_version = gcr_version_array[0].to_int() gcr_minor_version = gcr_version_array[1].to_int() gcr_micro_version = gcr_version_array[2].to_int() gck_api_version = '2' gck_version = '2.1.0' gck_soversion = '2' gck_version_array = gck_version.split('.') gck_major_version = gck_version_array[0].to_int() gck_minor_version = gck_version_array[1].to_int() gck_micro_version = gck_version_array[2].to_int() # Some variables source_root = meson.current_source_dir() build_root = meson.current_build_dir() cc = meson.get_compiler('c') gcr_prefix = get_option('prefix') libexecbindir = gcr_prefix / get_option('libexecdir') podir = source_root / 'po' gck_basename = 'gck-@0@'.format(gck_api_version) gcr_base_basename = 'gcr-base-@0@'.format(gcr_api_version) gcr_basename = 'gcr-@0@'.format(gcr_api_version) # Dependencies min_glib_version = '2.68' glib_dep = dependency('glib-2.0', version: '>=' + min_glib_version) gmodule_dep = dependency('gmodule-no-export-2.0', version: '>=' + min_glib_version) gthread_dep = dependency('gthread-2.0', version: '>=' + min_glib_version) gobject_dep = dependency('gobject-2.0', version: '>=' + min_glib_version) gio_dep = dependency('gio-2.0', version: '>=' + min_glib_version) gio_unix_dep = dependency('gio-unix-2.0',version: '>=' + min_glib_version) glib_deps = [ glib_dep, gmodule_dep, gthread_dep, gobject_dep, gio_dep, gio_unix_dep, ] gpg_path = get_option('gpg_path') if gpg_path == '' gpg_path = find_program('gpg2', 'gpg').full_path() endif libgcrypt_dep = dependency('libgcrypt', version: '>= 1') p11kit_dep = dependency('p11-kit-1', version: '>= 0.19.0') p11_system_config_modules = p11kit_dep.get_variable('p11_system_config_modules') if p11_system_config_modules == '' error('Couldn\'t find location for pkcs11 module config') endif libsecret_dep = dependency('libsecret-1', version: '>= 0.20', required: get_option('ssh_agent')) if get_option('ssh_agent') ssh_add_path = find_program('ssh-add').full_path() ssh_agent_path = find_program('ssh-agent').full_path() endif with_systemd = false libsystemd_deps = [] libsystemd = dependency('libsystemd', required: get_option('systemd')) systemd = dependency('systemd', required: get_option('systemd')) if libsystemd.found() and systemd.found() systemduserunitdir = systemd.get_variable('systemduserunitdir', pkgconfig_define: [ 'prefix', get_option('prefix') ], default_value: 'lib' / 'systemd' / 'user', ) libsystemd_deps += libsystemd with_systemd = true endif if get_option('gtk4') gtk4_dep = dependency('gtk4') endif enable_gir = get_option('introspection') enable_vapi = get_option('vapi') if enable_vapi assert(enable_gir, 'vapi support was requested, but introspection support is mandatory.') endif # configuration conf = configuration_data() conf.set_quoted('VERSION', meson.project_version()) conf.set_quoted('LIBEXECDIR', libexecbindir) conf.set_quoted('LOCALEDIR', gcr_prefix / get_option('localedir')) conf.set_quoted('GETTEXT_PACKAGE', gcr_basename) conf.set('HAVE_GETTEXT', true) conf.set('HAVE_LOCALE_H', cc.has_header('locale.h')) conf.set('HAVE_TIMEGM', cc.has_function('timegm')) conf.set('HAVE_MLOCK', cc.has_function('mlock')) conf.set_quoted('GPG_EXECUTABLE', gpg_path) conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version()) if get_option('ssh_agent') conf.set_quoted('SSH_ADD_EXECUTABLE', ssh_add_path) conf.set_quoted('SSH_AGENT_EXECUTABLE', ssh_agent_path) endif conf.set10('WITH_SYSTEMD', with_systemd) config_file = configure_file( output: 'config.h', configuration: conf, ) config_h_dir = include_directories('.') # subdirs subdir('po') subdir('egg') subdir('gck') subdir('gcr') subdir('tools') if get_option('gtk_doc') if not get_option('introspection') error('Can\'t generate docs without introspection enabled!') endif subdir('docs') endif