From f75221c7ea0a02aa0c4be3a9a3e2ece78e6cf8ec Mon Sep 17 00:00:00 2001 From: Evan Welsh Date: Fri, 26 Jan 2024 01:32:10 -0800 Subject: [PATCH] girepository: Move GIR generation into girepository and prior to tests To enable tests which depend on libgirepository's GIR and typelib, we need to refactor the order we're currently building these items. We can also move everything under girepository/ to cleanup the top-level. --- .../introspection}/meson.build | 27 +++++++++++++++++++ girepository/meson.build | 26 +----------------- girepository/tests/meson.build | 17 ++++++------ girepository/tests/test-common.c | 2 +- meson.build | 3 --- 5 files changed, 38 insertions(+), 37 deletions(-) rename {introspection => girepository/introspection}/meson.build (82%) diff --git a/introspection/meson.build b/girepository/introspection/meson.build similarity index 82% rename from introspection/meson.build rename to girepository/introspection/meson.build index 3e99389ac..126993659 100644 --- a/introspection/meson.build +++ b/girepository/introspection/meson.build @@ -157,3 +157,30 @@ gio_gir = gnome.generate_gir(libgio, env: gi_gen_env_variables, extra_args: gir_args + gio_gir_args, ) + +libgirepository_gir_sources = [ + gi_visibility_h, + girepo_headers, + girepo_sources, +] +libgirepository_gir_packages = [ 'girepository-2.0' ] +libgirepository_gir_args = [ + '-DGI_COMPILATION', + '--symbol-prefix=gi', + '--identifier-prefix=GI', +] + +girepository_gir = gnome.generate_gir(libgirepository, + sources: libgirepository_gir_sources, + namespace: 'GIRepository', + nsversion: '3.0', + identifier_prefix: 'GI', + symbol_prefix: 'gi', + export_packages: libgirepository_gir_packages, + header: 'girepository/girepository.h', + includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ], + install: true, + dependencies: [ libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep ], + extra_args: gir_args + libgirepository_gir_args, +) + diff --git a/girepository/meson.build b/girepository/meson.build index 6c0a1f8f6..45a935452 100644 --- a/girepository/meson.build +++ b/girepository/meson.build @@ -235,31 +235,7 @@ pkg.generate(libgirepository, ) if enable_gir - libgirepository_gir_sources = [ - gi_visibility_h, - girepo_headers, - girepo_sources, - ] - libgirepository_gir_packages = [ 'girepository-2.0' ] - libgirepository_gir_args = [ - '-DGI_COMPILATION', - '--symbol-prefix=gi', - '--identifier-prefix=GI', - ] - - girepository_gir = gnome.generate_gir(libgirepository, - sources: libgirepository_gir_sources, - namespace: 'GIRepository', - nsversion: '3.0', - identifier_prefix: 'GI', - symbol_prefix: 'gi', - export_packages: libgirepository_gir_packages, - header: 'girepository/girepository.h', - includes: [ glib_gir[0], gmodule_gir[0], gobject_gir[0], gio_gir[0] ], - install: true, - dependencies: [ libglib_dep, libgobject_dep, libgmodule_dep, libgio_dep ], - extra_args: gir_args + libgirepository_gir_args, - ) + subdir('introspection') endif if build_tests diff --git a/girepository/tests/meson.build b/girepository/tests/meson.build index 0a2e27203..01c01c936 100644 --- a/girepository/tests/meson.build +++ b/girepository/tests/meson.build @@ -1,18 +1,19 @@ -girepository_tests = {} +girepository_tests = { + 'cmph-bdz': { + 'dependencies': [cmph_dep], + }, + 'gthash' : { + 'dependencies': [girepo_gthash_dep], + }, +} -# Some GIR files are needed to test against +# Some tests require GIR files to have been generated if enable_gir girepository_tests += { - 'cmph-bdz': { - 'dependencies': [cmph_dep], - }, 'function-info' : { 'dependencies': [libffi_dep], 'depends': [glib_gir], }, - 'gthash' : { - 'dependencies': [girepo_gthash_dep], - }, 'repository' : { 'depends': [glib_gir, gio_gir, gobject_gir], }, diff --git a/girepository/tests/test-common.c b/girepository/tests/test-common.c index 08c3424e7..3b5ce3e11 100644 --- a/girepository/tests/test-common.c +++ b/girepository/tests/test-common.c @@ -46,7 +46,7 @@ repository_setup (RepositoryFixture *fx, fx->repository = gi_repository_new (); g_assert_nonnull (fx->repository); - fx->gobject_typelib_dir = g_test_build_filename (G_TEST_BUILT, "..", "..", "introspection", NULL); + fx->gobject_typelib_dir = g_test_build_filename (G_TEST_BUILT, "..", "introspection", NULL); g_test_message ("Using GI_TYPELIB_DIR = %s", fx->gobject_typelib_dir); gi_repository_prepend_search_path (fx->repository, fx->gobject_typelib_dir); diff --git a/meson.build b/meson.build index 9e647fc54..0d3a56aa8 100644 --- a/meson.build +++ b/meson.build @@ -2532,9 +2532,6 @@ subdir('gobject') subdir('gthread') subdir('gmodule') subdir('gio') -if enable_gir - subdir('introspection') -endif subdir('girepository') subdir('fuzzing')