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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
header_subdir = 'geocode-glib-' + gclib_api_version + '/geocode-glib'
header_dir = get_option('includedir') + '/' + header_subdir
headers = [ 'geocode-glib.h',
'geocode-location.h',
'geocode-forward.h',
'geocode-reverse.h',
'geocode-error.h',
'geocode-place.h',
'geocode-bounding-box.h',
'geocode-backend.h',
'geocode-mock-backend.h',
'geocode-nominatim.h' ]
generated_sources = gnome.mkenums('geocode-enum-types',
h_template: 'geocode-enum-types.h.in',
c_template: 'geocode-enum-types.c.in',
sources: headers,
install_header: true,
install_dir: header_dir)
public_sources = [ 'geocode-location.c',
'geocode-forward.c',
'geocode-reverse.c',
'geocode-glib.c',
'geocode-error.c',
'geocode-place.c',
'geocode-bounding-box.c',
'geocode-backend.c',
'geocode-mock-backend.c',
'geocode-nominatim.c' ] + generated_sources
sources = public_sources + [ 'geocode-glib-private.h' ]
if get_option('soup2')
soup_dep = dependency('libsoup-2.4', version: '>= 2.42')
else
soup_dep = dependency('libsoup-3.0', version: '>= 2.99.2')
endif
deps = [ dependency('gio-2.0', version: '>= 2.34'),
dependency('json-glib-1.0', version: '>= 0.99.2'),
soup_dep ]
libm = cc.find_library('m', required: false)
if libm.found()
deps += [ libm ]
endif
include = include_directories('..')
gclib_map = join_paths(meson.current_source_dir(), 'geocode-glib.map')
link_depends = []
link_args = []
if cc.has_link_argument('-Wl,--version-script,' + gclib_map)
link_depends += gclib_map
link_args += ['-Wl,--version-script,' + gclib_map]
endif
version = '0.0.0'
version_arr = version.split('.')
major_version = version_arr[0].to_int()
minor_version = version_arr[1].to_int()
micro_version = version_arr[2].to_int()
current = major_version + minor_version + 1
interface_age = micro_version
darwin_versions = [current, '@0@.@1@'.format(current, interface_age)]
libgcglib = shared_library('geocode-glib',
sources,
dependencies: deps,
include_directories: include,
link_depends: link_depends,
link_args: link_args,
soversion: '0',
version: version,
darwin_versions: darwin_versions,
install: true)
install_headers(headers, subdir: header_subdir)
pkgconf = import('pkgconfig')
pkgconf.generate(libraries: libgcglib,
version: gclib_version,
name: 'geocode-glib',
description: 'Helper library for geocoding services',
filebase: 'geocode-glib-@0@'.format(gclib_api_version),
subdirs: 'geocode-glib-@0@'.format(gclib_api_version),
requires: 'gio-2.0',
variables: [
'apiversion=' + gclib_api_version,
])
gir = find_program('g-ir-scanner', required: false)
enable_gir = get_option('enable-introspection')
if gir.found() and enable_gir
gir_args = [
'--quiet',
'--c-include=geocode-glib/geocode-glib.h'
]
gnome.generate_gir(libgcglib,
sources: public_sources + headers,
namespace: 'GeocodeGlib',
nsversion: gclib_api_version,
identifier_prefix: 'Geocode',
symbol_prefix: 'geocode',
export_packages: 'geocode-glib-1.0',
dependencies: deps,
includes: [ 'GObject-2.0',
'Gio-2.0',
'Json-1.0',
get_option('soup2') ? 'Soup-2.4' : 'Soup-3.0' ],
install: true,
extra_args: gir_args)
endif
geocode_glib_dep = declare_dependency(link_with: libgcglib,
include_directories: include,
dependencies: deps,
sources: generated_sources)
if get_option('enable-installed-tests')
subdir('tests')
endif
|