project( 'glib-networking', 'c', version: '2.56.1', license: 'LGPL2.1+', meson_version: '>= 0.43.0', default_options: ['c_std=c11'] ) prefix = get_option('prefix') datadir = join_paths(prefix, get_option('datadir')) libdir = join_paths(prefix, get_option('libdir')) libexecdir = join_paths(prefix, get_option('libexecdir')) localedir = join_paths(prefix, get_option('localedir')) installed_tests_metadir = join_paths(datadir, 'installed-tests', meson.project_name()) installed_tests_execdir = join_paths(libexecdir, 'installed-tests', meson.project_name()) cc = meson.get_compiler('c') config_h = configuration_data() config_h.set_quoted('GETTEXT_PACKAGE', meson.project_name()) # compiler flags common_flags = [ '-DHAVE_CONFIG_H', '-DG_LOG_DOMAIN="GLib-Net"', '-DLOCALE_DIR="@0@"'.format(localedir), '-DG_DISABLE_DEPRECATED', '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56' ] add_project_arguments(common_flags, language: 'c') symbol_map = join_paths(meson.current_source_dir(), meson.project_name() + '.map') module_ldflags = [] if host_machine.system().contains('linux') test_ldflag = '-Wl,--version-script,' + symbol_map module_ldflags += cc.get_supported_arguments(test_ldflag) endif # *** Check GLib GIO *** glib_dep = dependency('glib-2.0', version: '>= 2.55.1') gio_dep = dependency('gio-2.0') gio_module_dir = gio_dep.get_pkgconfig_variable('giomoduledir', define_variable: ['libdir', libdir]) assert(gio_module_dir != '', 'GIO_MODULE_DIR is missing from gio-2.0.pc') # *** Checks for LibProxy *** enable_libproxy_support = get_option('libproxy_support') if enable_libproxy_support libproxy_dep = dependency('libproxy-1.0', version: '>= 0.3.1', required: true) endif # *** Checks for GNOME *** enable_gnome_proxy_support = get_option('gnome_proxy_support') if enable_gnome_proxy_support gsettings_desktop_schemas_dep = dependency('gsettings-desktop-schemas', required: true) endif # *** Checks for GnuTLS *** gnutls_dep = dependency('gnutls', version: '>= 3.3.5', required: true) msg = 'location of system Certificate Authority list: ' res = run_command(join_paths(meson.source_root(), 'find-ca-certificates'), get_option('ca_certificates_path')) assert(res.returncode() == 0, msg + ' could not find any CA certificate store. Use -Dca_certificates_path=PATH to set') ca_certificates_path = res.stdout().strip() message(msg + ca_certificates_path) config_h.set_quoted('GTLS_SYSTEM_CA_FILE', ca_certificates_path, description: 'The system CA list') # *** Checks for p11-kit *** enable_pkcs11_support = get_option('pkcs11_support') if enable_pkcs11_support pkcs11_dep = dependency('p11-kit-1', version: '>= 0.20', required: true) config_h.set('HAVE_PKCS11', enable_pkcs11_support, description: 'Building with PKCS#11 support') endif configure_file( output: 'config.h', configuration: config_h ) gnome = import('gnome') i18n = import('i18n') pkg = import('pkgconfig') po_dir = join_paths(meson.source_root(), 'po') top_inc = include_directories('.') tls_inc = include_directories('tls') subdir('po') enable_installed_tests = get_option('installed_tests') test_template = files('template.test.in') if enable_libproxy_support or enable_gnome_proxy_support proxy_test_programs = [] if enable_libproxy_support subdir('proxy/libproxy') endif if enable_gnome_proxy_support subdir('proxy/gnome') endif subdir('proxy/tests') endif if enable_pkcs11_support subdir('tls/pkcs11') endif subdir('tls/gnutls') subdir('tls/tests') meson.add_install_script('meson_post_install.py', gio_module_dir) output = '\n\n libproxy support: ' + enable_libproxy_support.to_string() + '\n' output += ' GNOME proxy support: ' + enable_gnome_proxy_support.to_string() + '\n' output += ' PKCS#11 support: ' + enable_pkcs11_support.to_string() + '\n' output += ' TLS CA file: ' + ca_certificates_path + '\n' message(output)