summaryrefslogtreecommitdiff
path: root/libgeoclue/meson.build
blob: ef2761f9f789345d025df0641d3d03a1bc684429 (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
94
95
96
97
98
# FIXME: meson 0.46 doesn't seem to be actually installing the headers
# generated by gnome.gdbus_codegen:
#
# https://github.com/mesonbuild/meson/pull/3487

# Client interface
gclue_client = gnome.gdbus_codegen('gclue-client',
                               '../src/org.freedesktop.GeoClue2.Client.xml',
                               interface_prefix: 'org.freedesktop.GeoClue2.',
                               namespace: 'GClue',
                               install_header: true,
                               install_dir: include_subdir)
# Location interface
gclue_location = gnome.gdbus_codegen('gclue-location',
                               '../src/org.freedesktop.GeoClue2.Location.xml',
                               interface_prefix: 'org.freedesktop.GeoClue2.',
                               namespace: 'GClue',
                               install_header: true,
                               install_dir: include_subdir)
# Manager interface
gclue_manager = gnome.gdbus_codegen('gclue-manager',
                               '../src/org.freedesktop.GeoClue2.Manager.xml',
                               interface_prefix: 'org.freedesktop.GeoClue2.',
                               namespace: 'GClue',
                               install_header: true,
                               install_dir: include_subdir)

libgeoclue_sources = files('gclue-helpers.c', 'gclue-simple.c')
libgeoclue_sources += gclue_client[0]
libgeoclue_sources += gclue_location[0]
libgeoclue_sources += gclue_manager[0]
libgeoclue_sources += libgeoclue_public_api_gen_sources[1]

libgeoclue_headers = files('geoclue.h', 'gclue-helpers.h', 'gclue-simple.h')

install_headers(libgeoclue_headers, subdir: header_dir)

libgeoclue_headers += gclue_client[1]
libgeoclue_headers += gclue_location[1]
libgeoclue_headers += gclue_manager[1]

c_args = [ '-DG_LOG_DOMAIN="Geoclue"' ]
include_dirs = [ libgeoclue_public_api_inc, include_directories('.', '..') ]
link_whole = [ libgeoclue_public_api ]
libgeoclue = library('geoclue-2',
                     libgeoclue_sources,
                     libgeoclue_headers,
                     include_directories: include_dirs,
                     dependencies: base_deps,
                     link_whole: link_whole,
                     soversion: '0',
                     version: '0.0.0',
                     install: true)

gir = find_program('g-ir-scanner', required: false)
vapigen = find_program('vapigen', required: false)
enable_gir = get_option('introspection')
pkg_requirements = ['glib-2.0', 'gio-2.0', 'gio-unix-2.0']
gir_sources = [ libgeoclue_sources,
                libgeoclue_headers,
                libgeoclue_public_api_gen_sources[1] ]

if gir.found() and enable_gir
  geo_gir = gnome.generate_gir(libgeoclue,
                               sources: gir_sources,
                               namespace: 'Geoclue',
                               nsversion: gclue_api_version,
                               identifier_prefix: 'GClue',
                               symbol_prefix: 'gclue',
                               export_packages: 'libgeoclue-' + gclue_api_version,
                               dependencies: base_deps,
                               includes: [ 'GObject-2.0', 'Gio-2.0' ],
                               include_directories: include_dirs,
                               install: true,
                               header: 'geoclue.h',
                               extra_args: [ '--quiet' ])
  if vapigen.found()
    gnome.generate_vapi('libgeoclue-' + gclue_api_version,
                        sources: geo_gir[0],
                        packages: pkg_requirements,
                        install: true)
  endif
endif

description = 'A convenience library to interact with Geoclue service'
pkgconf = import('pkgconfig')
pkgconf.generate(version: gclue_version,
                 name: 'Geoclue Client Library',
                 description: description,
                 filebase: 'libgeoclue-' + gclue_api_version,
                 libraries: libgeoclue,
                 subdirs: [ header_dir ],
                 requires: pkg_requirements)

libgeoclue_dep = declare_dependency(link_with: libgeoclue,
                                    include_directories: include_dirs,
                                    dependencies: base_deps,
                                    sources: [ libgeoclue_sources, libgeoclue_headers ])