summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2022-03-30 10:40:42 +0000
committerCarlos Garnacho <carlosg@gnome.org>2022-03-30 10:40:42 +0000
commitea852d502f0dbd57bd54780adb811ee5c64870df (patch)
tree904c4dbccae41876e0df8986988fc4b851acbfb8
parent282f55f349f1310b21d81d782f6bdb923697152e (diff)
parentffaecd122e0f123aafd8849a4b616bcc6c081921 (diff)
downloadtracker-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.build119
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()