summaryrefslogtreecommitdiff
path: root/src/libtracker-data/meson.build
blob: 9eaef5bf163582f0ee45876ac017b2407176f205 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# 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('tracker-sparql-query',
    'tracker-vala-namespace.vala',
    'tracker-sparql-query.vala',
    'tracker-sparql-expression.vala',
    'tracker-sparql-pattern.vala',
    'tracker-sparql-scanner.vala',
    'tracker-turtle-reader.vala',
    '../libtracker-common/libtracker-common.vapi',
    'libtracker-data.vapi',
    tracker_sparql_vapi,
    tracker_common_enum_header,
    c_args: tracker_c_args,
    vala_args: [
        '--debug',
        '--pkg', 'posix',
        # FIXME: Meson has code to add --target-glib automatically, but it
        # doesn't seem to work here.
        '--target-glib', glib_required,
    ],
    # This doesn't depend on tracker_common_dep because of
    # https://github.com/mesonbuild/meson/issues/671
    dependencies: [glib, gio],
    include_directories: [commoninc, configinc, srcinc],
)

tracker_data_enums = gnome.mkenums('tracker-data-enum-types',
    sources: 'tracker-db-interface-sqlite.h',
    c_template: 'tracker-data-enum-types.c.template',
    h_template: 'tracker-data-enum-types.h.template',
)

tracker_data_dependencies = [
    tracker_common_dep, gvdb_dep, sqlite, uuid,
]

if get_option('fts')
    tracker_data_dependencies += tracker_fts_dep
endif

libtracker_data = library('tracker-data',
    'tracker-class.c',
    'tracker-collation.c',
    'tracker-crc32.c',
    'tracker-data-backup.c',
    'tracker-data-manager.c',
    'tracker-data-query.c',
    'tracker-data-update.c',
    'tracker-db-config.c',
    'tracker-db-interface.c',
    'tracker-db-interface-sqlite.c',
    'tracker-db-manager.c',
    'tracker-db-journal.c',
    'tracker-db-backup.c',
    'tracker-namespace.c',
    'tracker-ontology.c',
    'tracker-ontologies.c',
    'tracker-property.c',
    'tracker-string-builder.c',
    'tracker-sparql-parser.c',
    'tracker-sparql-types.c',
    'tracker-sparql.c',
    'tracker-uuid.c',
    tracker_common_enum_header,
    tracker_data_enums[0],
    tracker_data_enums[1],
    tracker_gresources[0],
    tracker_gresources[1],
    c_args: tracker_c_args,
    install: true,
    install_dir: tracker_internal_libs_dir,
    # This doesn't depend on tracker_common_dep because of
    # https://github.com/mesonbuild/meson/issues/671
    link_with: [libtracker_data_vala],
    # We do *not* want --no-undefined here, this library uses
    # symbols from libtracker-sparql, but does not mean it should
    # be linked to it.
    override_options: ['b_lundef=false'],
    dependencies: tracker_data_dependencies + [unicode_library, tracker_sparql_intermediate_dep],
    include_directories: [commoninc, configinc, srcinc],
)

tracker_data_dep = declare_dependency(
    link_with: [libtracker_data, libtracker_data_vala],
    dependencies: tracker_data_dependencies,
    include_directories: include_directories('.'),
    sources: enums[1],
)

install_data('org.freedesktop.Tracker.DB.gschema.xml',
    install_dir: gsettings_schema_dir)