From b1b79d1ec4b01e5c5e73d75a32750f5650aadc11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20No=C3=ABl?= Date: Wed, 8 Apr 2020 16:24:52 +0200 Subject: [PATCH 1/2] meson: Re-establish previous soversion and update meson declaration file to latest standards Explicitly set the meson requirements Update the gtk-doc declaration Use the built-in PkgConfig functionality --- docs/reference/libaccounts-glib-docs.xml | 10 ++++++ docs/reference/meson.build | 10 ++++-- libaccounts-glib/libaccounts-glib.pc.in | 15 -------- libaccounts-glib/meson.build | 44 ++++++++++++++---------- meson.build | 29 ++++++++-------- 5 files changed, 57 insertions(+), 51 deletions(-) delete mode 100644 libaccounts-glib/libaccounts-glib.pc.in diff --git a/docs/reference/libaccounts-glib-docs.xml b/docs/reference/libaccounts-glib-docs.xml index c5629ed..bc74848 100644 --- a/docs/reference/libaccounts-glib-docs.xml +++ b/docs/reference/libaccounts-glib-docs.xml @@ -106,6 +106,16 @@ + + Index of new symbols in 1.14 + + + + + Index of new symbols in 1.25 + + + diff --git a/docs/reference/meson.build b/docs/reference/meson.build index 19f26a9..be5e312 100644 --- a/docs/reference/meson.build +++ b/docs/reference/meson.build @@ -3,7 +3,7 @@ glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html') docpath = join_paths(get_option('prefix'), get_option('datadir'), 'gtk-doc', 'html') doc_configuration = configuration_data() -doc_configuration.set('VERSION', full_version) +doc_configuration.set('VERSION', meson.project_version()) configure_file(input : 'version.xml.in', output : 'version.xml', @@ -18,7 +18,7 @@ private_headers = [ gnome.gtkdoc('libaccounts-glib', main_xml: 'libaccounts-glib-docs.xml', - src_dir: [join_paths(meson.source_root (), 'libaccounts-glib')], + src_dir: src_dir, dependencies : [glib_dep, gobject_dep, accounts_glib_dep], content_files: [ 'ag-backup.xml', @@ -40,6 +40,10 @@ gnome.gtkdoc('libaccounts-glib', '--extra-dir=' + join_paths(glib_docpath, 'gobject'), '--extra-dir=' + join_paths(glib_docpath, 'gio') ], - scan_args: ['--rebuild-types','--ignore-headers=' + ' '.join(private_headers)], + c_args: [ + '-DACCOUNTS_GLIB_COMPILATION=1' + ], + ignore_headers: private_headers, + scan_args: ['--rebuild-types'], install: true ) diff --git a/libaccounts-glib/libaccounts-glib.pc.in b/libaccounts-glib/libaccounts-glib.pc.in deleted file mode 100644 index e4df7b6..0000000 --- a/libaccounts-glib/libaccounts-glib.pc.in +++ /dev/null @@ -1,15 +0,0 @@ -prefix=@prefix@ -libdir=@libdir@ -includedir=@includedir@ -applicationfilesdir=${prefix}/share/@APPLICATION_FILES_DIR@ -servicefilesdir=${prefix}/share/@SERVICE_FILES_DIR@ -servicetypefilesdir=${prefix}/share/@SERVICE_TYPE_FILES_DIR@ -providerfilesdir=${prefix}/share/@PROVIDER_FILES_DIR@ - -Name: libaccounts-glib -Description: A low-level library for managing accounts settings. -Requires: glib-2.0 gobject-2.0 gio-unix-2.0 -Require.private: libxml-2.0 sqlite3 -Version: @VERSION@ -Libs: -L${libdir} -laccounts-glib -Cflags: -I${includedir} -I${includedir}/libaccounts-glib diff --git a/libaccounts-glib/meson.build b/libaccounts-glib/meson.build index 34e3a6a..46427c6 100644 --- a/libaccounts-glib/meson.build +++ b/libaccounts-glib/meson.build @@ -40,10 +40,16 @@ marshal_files = gnome.genmarshal('ag-marshal', private_headers += marshal_files[1] c_files += marshal_files[0] -ag_library = shared_library('accounts-glib', +src_dir = include_directories('.') + +ag_library = library('accounts-glib', public_headers + private_headers + c_files, - c_args: '-DACCOUNTS_GLIB_COMPILATION=1', - soversion: version_major, + c_args: [ + '-DG_LOG_DOMAIN="accounts-glib"', + '-DACCOUNTS_GLIB_COMPILATION=1', + ], + version: meson.project_version(), + soversion: so_version, dependencies: accounts_glib_library_deps, include_directories: root_dir, install: true @@ -54,21 +60,20 @@ install_headers(public_headers + files('accounts-glib.h'), ) # PkgConfig creation -accounts_glib_config = configuration_data() -accounts_glib_config.set('prefix', get_option('prefix')) -accounts_glib_config.set('libdir', join_paths('${prefix}', get_option('libdir'))) -accounts_glib_config.set('includedir', join_paths('${prefix}', get_option('includedir'))) -accounts_glib_config.set('APPLICATION_FILES_DIR', application_files_dir) -accounts_glib_config.set('SERVICE_FILES_DIR', service_files_dir) -accounts_glib_config.set('SERVICE_TYPE_FILES_DIR', service_type_files_dir) -accounts_glib_config.set('PROVIDER_FILES_DIR', provider_files_dir) -accounts_glib_config.set('VERSION', full_version) - -configure_file( - input: 'libaccounts-glib.pc.in', - output: 'libaccounts-glib.pc', - configuration: accounts_glib_config, - install_dir: join_paths(get_option('libdir'), 'pkgconfig') +pkg.generate( + ag_library, + filebase: 'libaccounts-glib', + name: 'libaccounts-glib', + description: 'A low-level library for managing accounts settings.', + version: meson.project_version(), + requires: [glib_dep, gio_dep, gio_unix_dep, gobject_dep], + subdirs: 'libaccounts-glib', + variables: [ + 'applicationfilesdir=${prefix}/share/' + application_files_dir, + 'servicefilesdir=${prefix}/share/' + service_files_dir, + 'servicetypefilesdir=${prefix}/share/' + service_type_files_dir, + 'providerfilesdir=${prefix}/share/' + provider_files_dir, + ] ) # Creation of the dependency to use it in tools and tests @@ -87,7 +92,8 @@ gir_targets = gnome.generate_gir(ag_library, symbol_prefix: 'ag', includes: ['GObject-2.0', 'Gio-2.0'], dependencies: accounts_glib_library_deps, - extra_args: ['--c-include=libaccounts-glib.h', '-DACCOUNTS_GLIB_COMPILATION=1'], + header: 'libaccounts-glib.h', + extra_args: ['-DACCOUNTS_GLIB_COMPILATION=1'], install: true ) diff --git a/meson.build b/meson.build index 999c679..6f214e7 100644 --- a/meson.build +++ b/meson.build @@ -1,16 +1,17 @@ -project('libaccounts-glib', 'c') +project('libaccounts-glib', 'c', version: '1.24', license: 'LGPL2.1', meson_version: '>=0.48.0') -version_major = 1 -version_minor = 24 -full_version = '@0@.@1@'.format(version_major, version_minor) -api_version = '@0@.0'.format(version_major) +version_parts = meson.project_version().split('.') +api_version = '@0@.0'.format(version_parts[0]) +so_version = '0' gnome = import('gnome') +pkg = import('pkgconfig') -glib_dep = dependency('glib-2.0', version : '>=2.26') -gio_dep = dependency('gio-2.0', version : '>=2.26') -gio_unix_dep = dependency('gio-unix-2.0') -gobject_dep = dependency('gobject-2.0', version : '>=2.35.1') +glib_minimal_version = '2.26' +glib_dep = dependency('glib-2.0', version : '>=' + glib_minimal_version) +gio_dep = dependency('gio-2.0', version : '>=' + glib_minimal_version) +gio_unix_dep = dependency('gio-unix-2.0', version : '>=' + glib_minimal_version) +gobject_dep = dependency('gobject-2.0', version : '>=' + glib_minimal_version) libxml_dep = dependency('libxml-2.0') sqlite_dep = dependency('sqlite3', version : '>=3.7.0') @@ -20,11 +21,11 @@ service_files_dir = 'accounts/services' service_type_files_dir = 'accounts/service_types' database_dir = 'libaccounts-glib' -add_global_arguments('-DAPPLICATION_FILES_DIR="'+ application_files_dir + '"', language : 'c') -add_global_arguments('-DPROVIDER_FILES_DIR="'+ provider_files_dir + '"', language : 'c') -add_global_arguments('-DSERVICE_FILES_DIR="'+ service_files_dir + '"', language : 'c') -add_global_arguments('-DSERVICE_TYPE_FILES_DIR="'+ service_type_files_dir + '"', language : 'c') -add_global_arguments('-DDATABASE_DIR="'+ database_dir + '"', language : 'c') +add_project_arguments('-DAPPLICATION_FILES_DIR="'+ application_files_dir + '"', language : 'c') +add_project_arguments('-DPROVIDER_FILES_DIR="'+ provider_files_dir + '"', language : 'c') +add_project_arguments('-DSERVICE_FILES_DIR="'+ service_files_dir + '"', language : 'c') +add_project_arguments('-DSERVICE_TYPE_FILES_DIR="'+ service_type_files_dir + '"', language : 'c') +add_project_arguments('-DDATABASE_DIR="'+ database_dir + '"', language : 'c') accounts_glib_library_deps = [glib_dep, gio_dep, gio_unix_dep, gobject_dep, libxml_dep, sqlite_dep] -- 2.24.1 From b6ff6ce8a0f71a1212f9cc8fd45bc8f8c81079dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20No=C3=ABl?= Date: Wed, 8 Apr 2020 17:47:00 +0200 Subject: [PATCH 2/2] ci: Update meson using pip3 --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index adc9705..4d861af 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,12 +15,14 @@ before_script: - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -yq sudo - useradd -m tester - adduser tester sudo - - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y locales + - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -yq locales - echo "en_US UTF-8" > /etc/locale.gen - locale-gen en_US.UTF-8 - export LANG=en_US.UTF-8 - export LANGUAGE=en_US:en - export LC_ALL=en_US.UTF-8 + - apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -yq python3-pip + - pip3 install meson build_amd64: -- 2.24.1