summaryrefslogtreecommitdiff
path: root/client/meson.build
blob: 0308dc2da40c6b62fb293d8b6a61acbe0b43d4af (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
client_inc = include_directories('.')

install_headers(
  'dconf.h',
  subdir: 'dconf',
)

install_headers(
  'dconf-client.h',
  subdir: join_paths('dconf', 'client'),
)

sources = files('dconf-client.c')

libdconf_client = static_library(
  'dconf-client',
  sources: sources,
  include_directories: top_inc,
  dependencies: libdconf_gdbus_thread_dep,
  c_args: dconf_c_args,
  pic: true,
)

libdconf_client_dep = declare_dependency(
  dependencies: gio_dep,
  link_with: libdconf_client,
)

client_deps = [
  libdconf_common_dep,
  libdconf_engine_dep,
  libdconf_gdbus_thread_dep,
]

symbol_map = join_paths(meson.current_source_dir(), 'symbol.map')
ldflags = cc.get_supported_link_arguments('-Wl,--version-script,@0@'.format(symbol_map))

libdconf = shared_library(
  'dconf',
  sources: sources,
  version: libversion,
  soversion: soversion,
  include_directories: top_inc,
  dependencies: client_deps,
  c_args: dconf_c_args,
  link_args: ldflags,
  link_depends: symbol_map,
  install: true,
)

libdconf_dep = declare_dependency(
  include_directories: client_inc,
  dependencies: gio_dep,
  link_with: libdconf,
)

pkg.generate(
  libdconf,
  description: 'dconf client library',
  subdirs: 'dconf',
  requires: 'gio-2.0 ' + gio_req_version,
  variables: 'exec_prefix=${prefix}',
)

if get_option('vapi')
  vapigen_dep = dependency('vapigen')

  vapi_data = files(
    'dconf.vapi',
    'dconf.deps',
  )

  vapi_dir = vapigen_dep.get_pkgconfig_variable(
    'vapidir',
    define_variable: ['datadir', dconf_datadir]
  )

  install_data(
    vapi_data,
    install_dir: vapi_dir,
  )
endif