summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam@afuera.me.uk>2020-03-08 19:09:54 +0100
committerSam Thursfield <sam@afuera.me.uk>2020-03-08 19:20:36 +0100
commitde00f726c80927348f94bb6630297f9fee7754b1 (patch)
treeec0ea48052f1e41c9cec4d71ce18113a03b57120
parent911f37ecb546bbfe77d16ba2a006253ad85062cc (diff)
downloadtracker-de00f726c80927348f94bb6630297f9fee7754b1.tar.gz
Remove no-FTS codepaths
For historical reasons we have a codepath to build without full-text search support, mostly useful on systems where the SQLite FTS5 module is not available. This module is not difficult to build so in Tracker 3.0 we'll require it.
-rw-r--r--config.h.meson.in3
-rw-r--r--meson.build97
-rw-r--r--meson_options.txt2
-rw-r--r--src/libtracker-data/meson.build4
-rw-r--r--src/libtracker-data/tracker-data-manager.c24
-rw-r--r--src/libtracker-data/tracker-data-update.c71
-rw-r--r--src/libtracker-data/tracker-db-interface-sqlite.c10
-rw-r--r--src/libtracker-data/tracker-db-interface-sqlite.h2
-rw-r--r--src/libtracker-data/tracker-db-manager.c4
-rw-r--r--tests/functional-tests/meson.build5
-rw-r--r--tests/meson.build7
11 files changed, 45 insertions, 184 deletions
diff --git a/config.h.meson.in b/config.h.meson.in
index 8c7f99937..79b7e328f 100644
--- a/config.h.meson.in
+++ b/config.h.meson.in
@@ -78,9 +78,6 @@
/* Define to 1 if you have the `strnlen' function. */
#mesondefine HAVE_STRNLEN
-/* Define to 0 if tracker FTS is not compiled */
-#mesondefine HAVE_TRACKER_FTS
-
/* Define if we have UPOWER */
#mesondefine HAVE_UPOWER
diff --git a/meson.build b/meson.build
index fbfb88d7a..0374797f3 100644
--- a/meson.build
+++ b/meson.build
@@ -65,8 +65,6 @@ add_project_arguments(['-D', 'TRACKER_COMPILATION'],
['-D', 'G_LOG_DOMAIN="Tracker"'],
language: 'vala')
-enable_fts = get_option('fts')
-
network_manager = dependency('libnm', required: get_option('network_manager'))
have_network_manager = network_manager.found()
@@ -77,63 +75,54 @@ have_network_manager = network_manager.found()
libstemmer = cc.find_library('stemmer', required: get_option('stemmer'))
have_libstemmer = libstemmer.found()
-##################################################################
-# Check for tracker-fts, allow disabling FTS support
-##################################################################
-
-if enable_fts
- if meson.is_cross_build() and not meson.has_exe_wrapper()
- sqlite3_fts5 = meson.get_cross_property('sqlite3_has_fts5')
- if sqlite3_fts5 == ''
- error('Please assign an appropriate value for sqlite3_has_fts5 in the [properties] section of your crossfile')
- elif sqlite3_fts5 == 'true'
- sqlite3_has_builtin_fts5 = true
- elif sqlite3_fts5 == 'false'
- sqlite3_has_builtin_fts5 = false
- else
- error('Invalid value of sqlite3_has_fts5 property, use \'true\' or \'false\'')
- endif
+if meson.is_cross_build() and not meson.has_exe_wrapper()
+ sqlite3_fts5 = meson.get_cross_property('sqlite3_has_fts5')
+ if sqlite3_fts5 == ''
+ error('Please assign an appropriate value for sqlite3_has_fts5 in the [properties] section of your crossfile')
+ elif sqlite3_fts5 == 'true'
+ sqlite3_has_builtin_fts5 = true
+ elif sqlite3_fts5 == 'false'
+ sqlite3_has_builtin_fts5 = false
else
- sqlite3_builtin_fts5_test = '''
- #include <sqlite3.h>
-
- int main (int argc, char *argv[]) {
- sqlite3 *db;
- int rc;
- rc = sqlite3_open(":memory:", &db);
- if (rc!=SQLITE_OK) return -1;
- rc = sqlite3_exec(db, "create table a(text)", 0, 0, 0);
- if (rc!=SQLITE_OK) return -1;
- rc = sqlite3_exec(db, "create virtual table t using fts5(content='a',text)", 0, 0, 0);
- if (rc!=SQLITE_OK) return -1;
- }
- '''
-
- result = cc.run(sqlite3_builtin_fts5_test,
- name: 'sqlite3 has builtin FTS5 module',
- dependencies: sqlite)
-
- if not result.compiled()
- error('Failed to compile SQLite FTS test.')
- endif
-
- if result.returncode() == 0
- sqlite3_has_builtin_fts5 = true
- else
- sqlite3_has_builtin_fts5 = false
- endif
+ error('Invalid value of sqlite3_has_fts5 property, use \'true\' or \'false\'')
+ endif
+else
+ sqlite3_builtin_fts5_test = '''
+ #include <sqlite3.h>
+
+ int main (int argc, char *argv[]) {
+ sqlite3 *db;
+ int rc;
+ rc = sqlite3_open(":memory:", &db);
+ if (rc!=SQLITE_OK) return -1;
+ rc = sqlite3_exec(db, "create table a(text)", 0, 0, 0);
+ if (rc!=SQLITE_OK) return -1;
+ rc = sqlite3_exec(db, "create virtual table t using fts5(content='a',text)", 0, 0, 0);
+ if (rc!=SQLITE_OK) return -1;
+ }
+ '''
+
+ result = cc.run(sqlite3_builtin_fts5_test,
+ name: 'sqlite3 has builtin FTS5 module',
+ dependencies: sqlite)
+
+ if not result.compiled()
+ error('Failed to compile SQLite FTS test.')
endif
- if sqlite3_has_builtin_fts5
- message('Using sqlite3 builtin FTS module')
- elif sqlite.version().version_compare('>= 3.20.0')
- error('FTS support was enabled but SQLite doesn\'t have the FTS module built in')
+ if result.returncode() == 0
+ sqlite3_has_builtin_fts5 = true
else
- message('sqlite3 is older than version 3.20.0, using FTS module that is bundled with Tracker')
+ sqlite3_has_builtin_fts5 = false
endif
+endif
+if sqlite3_has_builtin_fts5
+ message('Using sqlite3 builtin FTS module')
+elif sqlite.version().version_compare('>= 3.20.0')
+ error('FTS support was enabled but SQLite doesn\'t have the FTS module built in')
else
- sqlite3_has_builtin_fts5 = false
+ message('sqlite3 is older than version 3.20.0, using FTS module that is bundled with Tracker')
endif
##################################################################
@@ -196,7 +185,6 @@ endif
conf = configuration_data()
# Config that goes in config.h
-conf.set10('HAVE_TRACKER_FTS', enable_fts)
conf.set('HAVE_BUILTIN_FTS', sqlite3_has_builtin_fts5)
conf.set('HAVE_LIBICU', unicode_library_name == 'icu')
@@ -316,8 +304,7 @@ summary = [
'\nFeature Support:',
' Support for network status detection: ' + have_network_manager.to_string(),
' Unicode support library: ' + unicode_library_name,
- ' Build with SQLite FTS support: @0@ (built-in FTS: @1@)'.format(
- get_option('fts'), sqlite3_has_builtin_fts5),
+ ' Use external FTS module: ' + (not sqlite3_has_builtin_fts5).to_string(),
' Build with Stemming support: ' + have_libstemmer.to_string(),
]
diff --git a/meson_options.txt b/meson_options.txt
index e29aaaa84..04ecfb953 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,7 +1,5 @@
option('docs', type: 'boolean', value: false, yield: true,
description: 'Generate API documentation with gtk-doc')
-option('fts', type: 'boolean', value: true,
- description: 'Enable the Tracker full-text search feature')
option('man', type: 'boolean', value: true, yield: true,
description: 'Install man pages')
option('override_sqlite_version_check', type: 'boolean', value: false,
diff --git a/src/libtracker-data/meson.build b/src/libtracker-data/meson.build
index d93fa1122..58e38f607 100644
--- a/src/libtracker-data/meson.build
+++ b/src/libtracker-data/meson.build
@@ -33,9 +33,7 @@ tracker_data_dependencies = [
tracker_common_dep, gvdb_dep, sqlite,
]
-if get_option('fts')
- tracker_data_dependencies += tracker_fts_dep
-endif
+tracker_data_dependencies += tracker_fts_dep
libtracker_data = library('tracker-data',
'tracker-class.c',
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index e479b44bd..a0bc8e863 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -30,9 +30,7 @@
#include <glib/gstdio.h>
-#if HAVE_TRACKER_FTS
#include <libtracker-fts/tracker-fts.h>
-#endif
#include <libtracker-common/tracker-locale.h>
@@ -130,12 +128,10 @@ enum {
N_PROPS
};
-#if HAVE_TRACKER_FTS
static gboolean tracker_data_manager_fts_changed (TrackerDataManager *manager);
static void tracker_data_manager_update_fts (TrackerDataManager *manager,
TrackerDBInterface *iface,
const gchar *database);
-#endif
static void tracker_data_manager_initable_iface_init (GInitableIface *iface);
@@ -3771,7 +3767,6 @@ load_ontologies_gvdb (TrackerDataManager *manager,
g_free (filename);
}
-#if HAVE_TRACKER_FTS
static gboolean
tracker_data_manager_fts_changed (TrackerDataManager *manager)
{
@@ -3898,7 +3893,6 @@ tracker_data_manager_update_fts (TrackerDataManager *manager,
g_hash_table_unref (fts_properties);
g_hash_table_unref (multivalued);
}
-#endif
GFile *
tracker_data_manager_get_cache_location (TrackerDataManager *manager)
@@ -3987,15 +3981,11 @@ tracker_data_manager_initialize_iface (TrackerDataManager *data_manager,
return FALSE;
}
-#if HAVE_TRACKER_FTS
tracker_data_manager_init_fts (data_manager, iface, value, FALSE);
-#endif
}
}
-#if HAVE_TRACKER_FTS
tracker_data_manager_init_fts (data_manager, iface, "main", FALSE);
-#endif
return TRUE;
}
@@ -4247,9 +4237,7 @@ tracker_data_manager_initable_init (GInitable *initable,
return FALSE;
}
-#if HAVE_TRACKER_FTS
tracker_data_manager_init_fts (manager, iface, "main", TRUE);
-#endif
tracker_data_manager_initialize_iface (manager, iface, &internal_error);
if (internal_error) {
@@ -4582,14 +4570,12 @@ tracker_data_manager_initable_init (GInitable *initable,
if (!ontology_error) {
/* Perform ALTER-TABLE and CREATE-TABLE calls for all that are is_new */
-#if HAVE_TRACKER_FTS
gboolean update_fts;
update_fts = tracker_data_manager_fts_changed (manager);
if (update_fts)
tracker_db_interface_sqlite_fts_delete_table (iface, "main");
-#endif
tracker_data_ontology_setup_db (manager, iface, "main", TRUE,
&ontology_error);
@@ -4603,34 +4589,28 @@ tracker_data_manager_initable_init (GInitable *initable,
g_hash_table_iter_init (&iter, graphs);
while (g_hash_table_iter_next (&iter, &value, NULL)) {
-#if HAVE_TRACKER_FTS
if (update_fts)
tracker_db_interface_sqlite_fts_delete_table (iface, value);
-#endif
tracker_data_ontology_setup_db (manager, iface, value, TRUE,
&ontology_error);
if (ontology_error)
break;
-#if HAVE_TRACKER_FTS
if (update_fts) {
tracker_data_manager_update_fts (manager, iface, value);
} else {
tracker_data_manager_init_fts (manager, iface, value, FALSE);
}
-#endif
}
}
if (!ontology_error) {
-#if HAVE_TRACKER_FTS
if (update_fts) {
tracker_data_manager_update_fts (manager, iface, "main");
} else {
tracker_data_manager_init_fts (manager, iface, "main", FALSE);
}
-#endif
}
if (!ontology_error) {
@@ -4739,11 +4719,9 @@ skip_ontology_check:
tracker_db_manager_set_current_locale (manager->db_manager);
-#if HAVE_TRACKER_FTS
rebuild_fts_tokens (manager, iface);
} else if (!read_only && tracker_db_manager_get_tokenizer_changed (manager->db_manager)) {
rebuild_fts_tokens (manager, iface);
-#endif
}
if (!read_only) {
@@ -4975,9 +4953,7 @@ tracker_data_manager_create_graph (TrackerDataManager *manager,
FALSE, error))
goto detach;
-#if HAVE_TRACKER_FTS
tracker_data_manager_init_fts (manager, iface, name, TRUE);
-#endif
id = tracker_data_ensure_graph (manager->data_update, name, error);
if (id == 0)
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index e9b9f4ec1..64ebee694 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -54,9 +54,7 @@ struct _TrackerDataUpdateBuffer {
/* string -> TrackerDataUpdateBufferGraph */
GPtrArray *graphs;
-#if HAVE_TRACKER_FTS
gboolean fts_ever_updated;
-#endif
};
struct _TrackerDataUpdateBufferGraph {
@@ -80,9 +78,7 @@ struct _TrackerDataUpdateBufferResource {
/* TrackerClass */
GPtrArray *types;
-#if HAVE_TRACKER_FTS
gboolean fts_updated;
-#endif
};
struct _TrackerDataUpdateBufferProperty {
@@ -90,9 +86,7 @@ struct _TrackerDataUpdateBufferProperty {
GValue value;
guint date_time : 1;
-#if HAVE_TRACKER_FTS
guint fts : 1;
-#endif
};
struct _TrackerDataUpdateBufferTable {
@@ -599,9 +593,7 @@ cache_insert_value (TrackerData *data,
g_value_init (&property.value, G_VALUE_TYPE (value));
g_value_copy (value, &property.value);
-#if HAVE_TRACKER_FTS
property.fts = fts;
-#endif
property.date_time = date_time;
table = cache_ensure_table (data, table_name, multiple_values);
@@ -635,9 +627,7 @@ cache_delete_value (TrackerData *data,
g_value_init (&property.value, G_VALUE_TYPE (value));
g_value_copy (value, &property.value);
-#if HAVE_TRACKER_FTS
property.fts = fts;
-#endif
property.date_time = date_time;
table = cache_ensure_table (data, table_name, multiple_values);
@@ -963,7 +953,6 @@ tracker_data_resource_buffer_flush (TrackerData *data,
}
}
-#if HAVE_TRACKER_FTS
if (resource->fts_updated) {
TrackerProperty *prop;
GArray *values;
@@ -1006,7 +995,6 @@ tracker_data_resource_buffer_flush (TrackerData *data,
g_ptr_array_free (text, TRUE);
}
}
-#endif
}
static void
@@ -1081,9 +1069,7 @@ tracker_data_update_buffer_clear (TrackerData *data)
g_hash_table_remove_all (data->update_buffer.resource_cache);
data->resource_buffer = NULL;
-#if HAVE_TRACKER_FTS
data->update_buffer.fts_ever_updated = FALSE;
-#endif
}
static void
@@ -1369,12 +1355,10 @@ get_old_property_values (TrackerData *data,
GError **error)
{
GArray *old_values;
-#if HAVE_TRACKER_FTS
const gchar *database;
database = data->resource_buffer->graph->graph ?
data->resource_buffer->graph->graph : "main";
-#endif
/* read existing property values */
old_values = g_hash_table_lookup (data->resource_buffer->predicates, property);
@@ -1388,7 +1372,6 @@ get_old_property_values (TrackerData *data,
return NULL;
}
-#if HAVE_TRACKER_FTS
if (tracker_property_get_fulltext_indexed (property)) {
TrackerDBInterface *iface;
@@ -1458,9 +1441,6 @@ get_old_property_values (TrackerData *data,
} else {
old_values = get_property_values (data, property);
}
-#else
- old_values = get_property_values (data, property);
-#endif
}
return old_values;
@@ -1933,9 +1913,7 @@ cache_delete_resource_type_full (TrackerData *data,
if (!single_type) {
if (strcmp (tracker_class_get_uri (class), TRACKER_PREFIX_RDFS "Resource") == 0 &&
g_hash_table_size (data->resource_buffer->tables) == 0) {
-#if HAVE_TRACKER_FTS
tracker_db_interface_sqlite_fts_delete_id (iface, database, data->resource_buffer->id);
-#endif
/* skip subclass query when deleting whole resource
to improve performance */
@@ -2199,9 +2177,7 @@ resource_buffer_switch (TrackerData *data,
} else {
resource_buffer->id = ensure_resource_id (data, resource_buffer->subject, &resource_buffer->create);
}
-#if HAVE_TRACKER_FTS
resource_buffer->fts_updated = FALSE;
-#endif
if (resource_buffer->create) {
resource_buffer->types = g_ptr_array_new ();
} else {
@@ -2655,7 +2631,6 @@ tracker_data_update_statement_with_uri (TrackerData *data,
multiple_values = tracker_property_get_multiple_values (property);
-#if HAVE_TRACKER_FTS
/* This is unavoidable with FTS */
/* This does a check_property_domain too */
old_values = get_old_property_values (data, property, &new_error);
@@ -2672,39 +2647,6 @@ tracker_data_update_statement_with_uri (TrackerData *data,
g_propagate_error (error, new_error);
return;
}
-#else
- /* We can disable correct object-id for deletes array here */
- if (!multiple_values) {
- guint r;
-
- for (r = 0; r < data->resource_buffer->types->len; r++) {
- TrackerClass *m_class = g_ptr_array_index (data->resource_buffer->types, r);
-
- /* We only do the old_values for GraphUpdated in tracker-store.
- * The subject's known classes are in resource_buffer->types
- * since resource_buffer_switch, so we can quickly check if any
- * of them has tracker:notify annotated. If so, get the old
- * values for the old_object_id */
-
- if (tracker_class_get_notify (m_class)) {
- /* This does a check_property_domain too */
- old_values = get_old_property_values (data, property, &new_error);
- domain_unchecked = FALSE;
- if (!new_error) {
- if (old_values->len > 0) {
- /* evel knievel cast */
- old_object_id = (gint) g_value_get_int64 (g_value_array_get_nth (old_values, 0));
- }
- } else {
- g_propagate_error (error, new_error);
- return;
- }
-
- break;
- }
- }
- }
-#endif /* HAVE_TRACKER_FTS */
if (domain_unchecked && !check_property_domain (data, property)) {
g_set_error (error, TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_CONSTRAINT,
@@ -2815,23 +2757,12 @@ tracker_data_update_statement_with_string (TrackerData *data,
if (!resource_buffer_switch (data, graph, subject, 0, error))
return;
-#if HAVE_TRACKER_FTS
/* This is unavoidable with FTS */
get_old_property_values (data, property, &new_error);
if (new_error) {
g_propagate_error (error, new_error);
return;
}
-#else
- if (!check_property_domain (data, property)) {
- g_set_error (error, TRACKER_SPARQL_ERROR, TRACKER_SPARQL_ERROR_CONSTRAINT,
- "Subject `%s' is not in domain `%s' of property `%s'",
- data->resource_buffer->subject,
- tracker_class_get_name (tracker_property_get_domain (property)),
- tracker_property_get_name (property));
- return;
- }
-#endif /* HAVE_TRACKER_FTS */
bytes_to_gvalue (object, tracker_property_get_data_type (property), &object_value, data, &new_error);
if (new_error) {
@@ -3028,11 +2959,9 @@ tracker_data_commit_transaction (TrackerData *data,
data->in_transaction = FALSE;
data->in_ontology_transaction = FALSE;
-#if HAVE_TRACKER_FTS
if (data->update_buffer.fts_ever_updated) {
data->update_buffer.fts_ever_updated = FALSE;
}
-#endif
tracker_db_interface_execute_query (iface, NULL, "PRAGMA cache_size = %d", TRACKER_DB_CACHE_SIZE_DEFAULT);
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c b/src/libtracker-data/tracker-db-interface-sqlite.c
index 3dbfcc233..b57c3a8b3 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -33,9 +33,7 @@
#include <libtracker-sparql/tracker-sparql.h>
#include <libtracker-sparql/tracker-private.h>
-#if HAVE_TRACKER_FTS
#include <libtracker-fts/tracker-fts.h>
-#endif
#ifdef HAVE_LIBUNISTRING
@@ -2071,7 +2069,6 @@ close_database (TrackerDBInterface *db_interface)
}
}
-#if HAVE_TRACKER_FTS
static gchar **
_fts_create_properties (GHashTable *properties)
{
@@ -2099,7 +2096,6 @@ _fts_create_properties (GHashTable *properties)
return (gchar **) g_ptr_array_free (cols, FALSE);
}
-#endif
void
tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface,
@@ -2108,7 +2104,6 @@ tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface,
GHashTable *multivalued,
gboolean create)
{
-#if HAVE_TRACKER_FTS
GStrv fts_columns;
tracker_fts_init_db (db_interface->db, db_interface, db_interface->flags, properties);
@@ -2137,11 +2132,8 @@ tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface,
FALSE);
g_strfreev (fts_columns);
}
-#endif
}
-#if HAVE_TRACKER_FTS
-
void
tracker_db_interface_sqlite_fts_delete_table (TrackerDBInterface *db_interface,
const gchar *database)
@@ -2348,8 +2340,6 @@ tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface,
tracker_fts_rebuild_tokens (interface->db, database, "fts5");
}
-#endif
-
void
tracker_db_interface_sqlite_reset_collator (TrackerDBInterface *db_interface)
{
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.h b/src/libtracker-data/tracker-db-interface-sqlite.h
index 9655f1999..517dea506 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.h
+++ b/src/libtracker-data/tracker-db-interface-sqlite.h
@@ -64,7 +64,6 @@ gboolean tracker_db_interface_sqlite_wal_checkpoint (TrackerD
gboolean tracker_db_interface_init_vtabs (TrackerDBInterface *interface,
TrackerOntologies *ontologies);
-#if HAVE_TRACKER_FTS
void tracker_db_interface_sqlite_fts_delete_table (TrackerDBInterface *interface,
const gchar *database);
@@ -89,7 +88,6 @@ gboolean tracker_db_interface_sqlite_fts_delete_id (TrackerD
void tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface,
const gchar *database);
-#endif
gboolean tracker_db_interface_attach_database (TrackerDBInterface *db_interface,
GFile *file,
diff --git a/src/libtracker-data/tracker-db-manager.c b/src/libtracker-data/tracker-db-manager.c
index 46bdea4a9..8292673aa 100644
--- a/src/libtracker-data/tracker-db-manager.c
+++ b/src/libtracker-data/tracker-db-manager.c
@@ -36,10 +36,6 @@
#include <libtracker-common/tracker-common.h>
#include <libtracker-common/tracker-parser.h>
-#if HAVE_TRACKER_FTS
-#include <libtracker-fts/tracker-fts.h>
-#endif
-
#include "tracker-db-manager.h"
#include "tracker-db-interface-sqlite.h"
#include "tracker-db-interface.h"
diff --git a/tests/functional-tests/meson.build b/tests/functional-tests/meson.build
index d5b90dca3..89b78756d 100644
--- a/tests/functional-tests/meson.build
+++ b/tests/functional-tests/meson.build
@@ -17,6 +17,7 @@ config_json = configure_file(
functional_tests = [
'insertion',
'query',
+ 'fts-functions',
'sparql-bugs',
'group-concat',
'coalesce',
@@ -29,10 +30,6 @@ functional_tests = [
'cli',
]
-if get_option('fts')
- functional_tests += 'fts-functions'
-endif
-
test_env = environment()
test_env.prepend('GI_TYPELIB_PATH', tracker_sparql_uninstalled_dir)
test_env.prepend('LD_LIBRARY_PATH', tracker_sparql_uninstalled_dir)
diff --git a/tests/meson.build b/tests/meson.build
index 602427fba..de12a4ae6 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -5,13 +5,8 @@ subdir('common')
subdir('gvdb')
subdir('libtracker-common')
subdir('libtracker-data')
-
-if enable_fts
- subdir('libtracker-fts')
-endif
-
+subdir('libtracker-fts')
subdir('libtracker-sparql')
-
subdir('functional-tests')
foreach t: tests