[tracker/wip/sam/meson] Initial successful build of libtracker-sparql & tracker-needle :-)



commit 82c3d44756fc1d5405fde1d70bb1662ae47c21bb
Author: Sam Thursfield <sam afuera me uk>
Date:   Tue Sep 20 22:14:21 2016 +0100

    Initial successful build of libtracker-sparql & tracker-needle :-)

 meson.build |   53 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 17 deletions(-)
---
diff --git a/meson.build b/meson.build
index f6dac1f..559530b 100644
--- a/meson.build
+++ b/meson.build
@@ -54,10 +54,9 @@ taglib = dependency('taglib_c', version: '> 1.6', required: false)
 upower = dependency('libupower-glib', version: '> 0.9.0', required: false)
 zlib = dependency('zlib')
 
-# These two don't have pkg-config files.
+# These don't have pkg-config files.
 libgif = meson.get_compiler('c').find_library('libgif', required: false)
 libjpeg = meson.get_compiler('c').find_library('libjpeg', required: false)
-
 libmath = meson.get_compiler('c').find_library('m')
 
 # FIXME: here we work around a quirk todo with Meson and Vala: the 'uuid'
@@ -102,9 +101,9 @@ conf.set('HAVE_BUILTIN_FTS', sqlite3_has_builtin_fts5)
 conf.set('HAVE_LIBMEDIAART', libmediaart.found())
 conf.set('HAVE_LIBICU', true)  # FIXME: shouldn't be hardcoded
 conf.set('HAVE_LIBUNISTRING', false)  # FIXME: shouldn't be hardcoded
-conf.set('LOCALEDIR', get_option('localedir'))
+conf.set('LOCALEDIR', '@0@/@1@'.format(get_option('prefix'), get_option('localedir')))
 conf.set('PACKAGE_VERSION', meson.project_version())
-conf.set('TRACKER_UI_DIR', get_option('datadir') + '/tracker/')
+conf.set('TRACKER_UI_DIR', '@0@/@1@/tracker/'.format(get_option('prefix'), get_option('datadir')))
 configure_file(input: 'config.h.meson.in',
                output: 'config.h',
                configuration: conf)
@@ -116,6 +115,9 @@ i18n.gettext('tracker', languages:
      'pa', 'pl', 'pt', 'pt_BR', 'ro', 'ru', 'sk', 'sl', 'sr', 'sr@latin', 'sv',
      'te', 'tg', 'th', 'tr', 'uk', 'zh_CN', 'zh_HK', 'zh_TW'])
 
+# Needed so we can link static helper libraries into shared libraries
+add_global_arguments('-fPIC', language: 'c')
+
 gvdb = static_library(
     'gvdb',
     'src/gvdb/gvdb-builder.c',
@@ -180,6 +182,7 @@ libtracker_fts = static_library(
 # The libtracker-sparql Vala code is in a separate library to the C code.
 # This is because the toplevel tracker-sparql.h file exists already and
 # explicitly includes the Vala-generated .h file.
+
 libtracker_sparql_intermediate_vala = static_library(
     'tracker-sparql-vala',
     'src/libtracker-sparql/tracker-namespace.vala',
@@ -201,23 +204,32 @@ libtracker_sparql_intermediate_vala = static_library(
         '--target-glib', glib_required,
     ],
 )
+tracker_sparql_intermediate_vala_dep = declare_dependency(
+    link_with: [libtracker_sparql_intermediate_vala, libtracker_common]
+)
 
+tracker_sparql_intermediate_dependencies = [gio, glib, gobject, uuid, tracker_sparql_intermediate_vala_dep]
 libtracker_sparql_intermediate = static_library(
     'tracker-sparql-' + tracker_api_version,
     'src/libtracker-sparql/tracker-uri.c',
     'src/libtracker-sparql/tracker-version.c',
-    link_with: [libtracker_sparql_intermediate_vala],
-    dependencies: [gio, glib, gobject, uuid],
+#    link_with: [libtracker_sparql_intermediate_vala],
+    dependencies: tracker_sparql_intermediate_dependencies,
     c_args: [
         '-DTRACKER_COMPILATION',
     ],
 )
 
+tracker_sparql_intermediate_dep = declare_dependency(
+    link_with: [libtracker_sparql_intermediate],
+    dependencies: tracker_sparql_intermediate_dependencies
+)
+
 # Vala parts of libtracker-data are split out separately, because we can't link
 # the Vala code to libicu. In the Makefile.am this library is called
 # libtracker-sparql-query.
 libtracker_data_vala = static_library(
-    'libtracker-data-vala',
+    'tracker-data-vala',
     'src/libtracker-data/tracker-vala-namespace.vala',
     'src/libtracker-data/tracker-sparql-query.vala',
     'src/libtracker-data/tracker-sparql-expression.vala',
@@ -244,7 +256,7 @@ libtracker_data_vala = static_library(
 )
 
 libtracker_data = library(
-    'libtracker-data',
+    'tracker-data',
     'src/libtracker-data/tracker-class.c',
     'src/libtracker-data/tracker-collation.c',
     'src/libtracker-data/tracker-crc32.c',
@@ -302,9 +314,8 @@ libtracker_direct = static_library(
     'src/libtracker-common/libtracker-common.vapi',
     'src/libtracker-data/libtracker-data.vapi',
     'src/libtracker-data/tracker-sparql-query.vapi',
-    link_with: [libtracker_common, libtracker_data,
-        libtracker_sparql_intermediate, libtracker_sparql_intermediate_vala],
-    dependencies: [glib, gio],
+    link_with: [libtracker_common, libtracker_data],
+    dependencies: [tracker_sparql_intermediate_dep],
     c_args: [
         '-DTRACKER_COMPILATION',
         '-I' + meson.source_root() + '/src',
@@ -317,13 +328,20 @@ libtracker_direct = static_library(
         '--target-glib', glib_required,
     ],
 )
+tracker_direct_dep = declare_dependency(
+    link_with: [libtracker_direct],
+    dependencies: [tracker_sparql_intermediate_dep]
+)
 
 libtracker_sparql = library(
     'tracker-sparql-' + tracker_api_version,
     'src/libtracker-sparql-backend/tracker-backend.vala',
-    'src/libtracker-common/libtracker-common.vapi',
-    link_with: [libtracker_common, libtracker_sparql_intermediate,
-        libtracker_bus, libtracker_direct]
+    link_with: [libtracker_common, libtracker_bus],
+    dependencies: [tracker_direct_dep],
+)
+tracker_sparql_dep = declare_dependency(
+    link_with: [libtracker_sparql, libtracker_common, libtracker_bus],
+    dependencies: [tracker_direct_dep],
 )
 
 executable(
@@ -338,10 +356,11 @@ executable(
     'src/tracker-needle/tracker-tags-view.vala',
     'src/tracker-needle/tracker-utils.vala',
     'src/tracker-needle/tracker-view.vala',
-    dependencies: [gtk3],
-    link_with: [libtracker_sparql],
+    dependencies: [tracker_sparql_dep, gtk3],
     c_args: [
-        '-DSRCDIR="' + meson.current_source_dir() + '"',
+        '-DSRCDIR="' + meson.current_source_dir() + '/src/tracker-needle/"',
+        '-D_XOPEN_SOURCE',
+        '-D_XOPEN_SOURCE_EXTENDED',
         '-include', 'config.h'
     ]
 )


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]