diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2022-03-30 10:40:42 +0000 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2022-03-30 10:40:42 +0000 |
commit | ea852d502f0dbd57bd54780adb811ee5c64870df (patch) | |
tree | 904c4dbccae41876e0df8986988fc4b851acbfb8 | |
parent | 282f55f349f1310b21d81d782f6bdb923697152e (diff) | |
parent | ffaecd122e0f123aafd8849a4b616bcc6c081921 (diff) | |
download | tracker-ea852d502f0dbd57bd54780adb811ee5c64870df.tar.gz |
Merge branch 'libtracker-remote-linking' into 'master'
libtracker-sparql: Fix libtracker-remote-soup{2,3} modules linking
Closes #358
See merge request GNOME/tracker!501
-rw-r--r-- | src/libtracker-sparql/meson.build | 119 |
1 files changed, 75 insertions, 44 deletions
diff --git a/src/libtracker-sparql/meson.build b/src/libtracker-sparql/meson.build index 668e21f5a..629ba0c2e 100644 --- a/src/libtracker-sparql/meson.build +++ b/src/libtracker-sparql/meson.build @@ -90,24 +90,64 @@ install_data( subdir('bus') subdir('direct') -tracker_remote_dependencies = [json_glib, libxml2] +libtracker_sparql = library('tracker-sparql-' + tracker_api_version, + '../libtracker-common/libtracker-common.vapi', + '../libtracker-data/libtracker-data.vapi', + 'direct/tracker-direct.vapi', + 'tracker-backend.vala', + 'tracker-remote-module.c', + tracker_gresources, + + gnu_symbol_visibility: 'hidden', + + soversion: soversion, + version: libversion, + + install: true, + install_rpath: tracker_internal_libs_dir, -libtracker_sparql_remote_c_sources = files ( + c_args: [ + '-include', 'libtracker-sparql/tracker-private.h', + '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), + '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), + '-DBUILDROOT="@0@"'.format(meson.build_root()), + ], + + link_whole: [libtracker_sparql_intermediate], + + dependencies: [tracker_common_dep, tracker_sparql_bus_dep, tracker_sparql_direct_dep, tracker_sparql_vapi_dep, gmodule, libdl], +) + +tracker_sparql_dep = declare_dependency( + link_with: libtracker_sparql, + include_directories: srcinc, + dependencies: [glib, gio], +) + +libtracker_sparql_remote_c_sources = files( 'tracker-endpoint-http.c', 'remote/tracker-remote-statement.c', + 'tracker-serializer.c', + 'tracker-serializer-json.c', + 'tracker-serializer-trig.c', + 'tracker-serializer-turtle.c', + 'tracker-serializer-xml.c', ) -remote_sources = [ - libtracker_sparql_remote_c_sources, +libtracker_sparql_remote_vala_sources = files( 'remote/tracker-remote.vapi', 'remote/tracker-json-cursor.vala', 'remote/tracker-xml-cursor.vala', 'remote/tracker-remote.vala', -] +) + +libtracker_sparql_modules = [] if libsoup2.found() - libtracker_remote_soup2 = shared_module('tracker-remote-soup2', remote_sources, - dependencies: tracker_remote_dependencies + [tracker_common_dep, tracker_sparql_intermediate_dep, libsoup2], + libtracker_remote_soup2 = shared_module('tracker-remote-soup2', + libtracker_sparql_remote_c_sources, libtracker_sparql_remote_vala_sources, + dependencies: [json_glib, libxml2, tracker_common_dep, tracker_sparql_dep, + tracker_sparql_vapi_dep, tracker_data_dep, libsoup2], c_args: tracker_c_args + [ '-include', 'config.h', '-include', 'libtracker-sparql/tracker-private.h', @@ -124,11 +164,14 @@ if libsoup2.found() install_dir: tracker_internal_libs_dir, name_suffix: 'so', ) + libtracker_sparql_modules += libtracker_remote_soup2 endif if libsoup3.found() - libtracker_remote_soup3 = shared_module('tracker-remote-soup3', remote_sources, - dependencies: tracker_remote_dependencies + [tracker_common_dep, tracker_sparql_intermediate_dep, libsoup3], + libtracker_remote_soup3 = shared_module('tracker-remote-soup3', + libtracker_sparql_remote_c_sources, libtracker_sparql_remote_vala_sources, + dependencies: [json_glib, libxml2, tracker_common_dep, tracker_sparql_dep, + tracker_sparql_vapi_dep, tracker_data_dep, libsoup3], c_args: tracker_c_args + [ '-include', 'config.h', '-include', 'libtracker-sparql/tracker-private.h', @@ -144,42 +187,9 @@ if libsoup3.found() install_dir: tracker_internal_libs_dir, name_suffix: 'so', ) + libtracker_sparql_modules += libtracker_remote_soup3 endif -libtracker_sparql = library('tracker-sparql-' + tracker_api_version, - '../libtracker-common/libtracker-common.vapi', - '../libtracker-data/libtracker-data.vapi', - 'direct/tracker-direct.vapi', - 'tracker-backend.vala', - 'tracker-remote-module.c', - tracker_gresources, - - gnu_symbol_visibility: 'hidden', - - soversion: soversion, - version: libversion, - - install: true, - install_rpath: tracker_internal_libs_dir, - - c_args: [ - '-include', 'libtracker-sparql/tracker-private.h', - '-DPRIVATE_LIBDIR="@0@"'.format(tracker_internal_libs_dir), - '-DBUILD_LIBDIR="@0@"'.format(meson.current_build_dir()), - '-DBUILDROOT="@0@"'.format(meson.build_root()), - ], - - link_whole: [libtracker_sparql_intermediate], - - dependencies: [tracker_common_dep, tracker_sparql_bus_dep, tracker_sparql_direct_dep, tracker_sparql_vapi_dep, gmodule, libdl], -) - -tracker_sparql_dep = declare_dependency( - link_with: libtracker_sparql, - include_directories: srcinc, - dependencies: [glib, gio], -) - pkg.generate(libtracker_sparql, description: 'Tracker : A SPARQL triple store library', requires: [glib, gio, gobject], @@ -197,8 +207,28 @@ pkg.generate(libtracker_sparql, ) if get_option('introspection').enabled() + # These are various hacks to ensure the GIR file depends on the + # remote connection modules as they are needed at g-ir-scanner + # runtime. Different meson versions need different hacks. + introspection_extra_sources = [] + introspection_extra_deps = [] + + if meson.version().version_compare('>=0.59') + introspection_extra_sources += custom_target('libtracker-sparql-modules-stamp', + output: 'tracker-sparql-modules-stamp.c', + command: ['touch', '@OUTPUT@'], + depends: libtracker_sparql_modules) + else + introspection_extra_deps += libtracker_sparql_modules + endif + tracker_sparql_gir = gnome.generate_gir(libtracker_sparql, - sources: libtracker_sparql_c_sources + libtracker_sparql_c_public_headers, + sources: [ + libtracker_sparql_c_sources, + libtracker_sparql_c_public_headers, + introspection_extra_sources, + ], + dependencies: introspection_extra_deps, nsversion: tracker_api_version, namespace: 'Tracker', identifier_prefix: 'Tracker', @@ -213,4 +243,5 @@ if get_option('introspection').enabled() ], export_packages: 'tracker-sparql-3.0') endif + tracker_sparql_uninstalled_dir = meson.current_build_dir() |