From edb9c77a28a276b4a4566271d05b33d0cd0a8fee Mon Sep 17 00:00:00 2001 From: Daniel Espinosa Date: Mon, 2 Oct 2023 19:31:59 -0600 Subject: [PATCH] build(c/adbc): Add support to build Vala bindings Vala VAPI file is generated for current GADBC 1.0 API version. It is disable by default, but recommended to be enable when a development package is distributed. This commit force a 1.0 API versioning, replacing the old one where 0 were used for GIR API version (gir_version), so now shows '1.0' instead of '0.0'. --- glib/adbc-glib/meson.build | 10 +++++++++- glib/meson.build | 10 +++++++++- glib/meson_options.txt | 5 +++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/glib/adbc-glib/meson.build b/glib/adbc-glib/meson.build index 1fe245e51b..d006ee43d9 100644 --- a/glib/adbc-glib/meson.build +++ b/glib/adbc-glib/meson.build @@ -86,7 +86,8 @@ pkgconfig.generate(libadbc_glib, variables: pkgconfig_variables, version: meson.project_version()) -adbc_glib_gir = gnome.generate_gir(libadbc_glib, +if have_gi + adbc_glib_gir = gnome.generate_gir(libadbc_glib, export_packages: 'adbc-glib', extra_args: [ '--warn-all', @@ -102,3 +103,10 @@ adbc_glib_gir = gnome.generate_gir(libadbc_glib, nsversion: api_version, sources: sources + definition_headers + enums, symbol_prefix: 'gadbc') + if generate_vapi + adbc_glib_vapi = gnome.generate_vapi('adbc-glib', + install: true, + packages: ['gobject-2.0'], + sources: [adbc_glib_gir[0]]) + endif +endif diff --git a/glib/meson.build b/glib/meson.build index 190023f095..e8fed98b4c 100644 --- a/glib/meson.build +++ b/glib/meson.build @@ -30,7 +30,7 @@ version_major = version_numbers[0].to_int() version_minor = version_numbers[1].to_int() version_micro = version_numbers[2].to_int() -api_version = '@0@.0'.format(version_major) +api_version = '1.0' so_version = version_major library_version = '.'.join(version_numbers) @@ -39,6 +39,7 @@ include_dir = get_option('includedir') project_include_sub_dir = meson.project_name() data_dir = get_option('datadir') gir_dir = prefix / data_dir / 'gir-1.0' +vapi_dir = data_dir / 'vala' / 'vapi' gnome = import('gnome') pkgconfig = import('pkgconfig') @@ -67,6 +68,13 @@ else dirs: [adbc_build_dir]) endif +have_gi = dependency('gobject-introspection-1.0', required: false).found() +generate_vapi = have_gi and get_option('vapi') +if generate_vapi + pkgconfig_variables += ['vapidir=@0@'.format(vapi_dir)] + add_languages('vala') +endif + subdir('adbc-glib') install_data('../LICENSE.txt', diff --git a/glib/meson_options.txt b/glib/meson_options.txt index 0ae1e6c341..ee0ae9497f 100644 --- a/glib/meson_options.txt +++ b/glib/meson_options.txt @@ -21,3 +21,8 @@ option('adbc_build_dir', type: 'string', value: '', description: 'Use this option to build with not installed ADBC') + +option('vapi', + type: 'boolean', + value: false, + description: 'Build Vala API')