summaryrefslogtreecommitdiff
path: root/src/libaccountsservice/meson.build
blob: 51c18facadab0e98648cfc1663a0621b4b7ff06c (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
99
100
libaccountsservice_dir = meson.current_source_dir()

subdir = act_id.to_lower()

headers = files(
  'act-user.h',
  'act-user-manager.h',
)

install_headers(
  headers + ['act.h'],
  install_dir: join_paths(act_pkgincludedir, subdir),
)

sources = files(
  'act-user.c',
  'act-user-manager.c',
)

enum_types = 'act-user-enum-types'

enum_sources = gnome.mkenums(
  enum_types,
  sources: headers,
  c_template: enum_types + '.c.template',
  h_template: enum_types + '.h.template',
  install_header: true,
  install_dir: join_paths(act_pkgincludedir, subdir),
)

deps = [
  crypt_dep,
  gio_unix_dep,
  glib_dep,
  libaccounts_generated_dep,
  logind_dep,
]

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

libaccountsservice = shared_library(
  act_name,
  sources: sources + enum_sources,
  version: libversion,
  include_directories: top_inc,
  dependencies: deps,
  c_args: '-DG_LOG_DOMAIN="@0@"'.format(meson.project_name()),
  link_args: ldflags,
  link_depends: symbol_map,
  install: true,
)

libaccountsservice_dep = declare_dependency(
  sources: enum_sources[1],
  include_directories: include_directories('.'),
  dependencies: [gio_dep, glib_dep],
  link_with: libaccountsservice,
)

pkg.generate(
  libaccountsservice,
  name: 'Accounts Service',
  description: 'Client Library for communicating with accounts service',
  filebase: act_name,
  subdirs: act_api_name,
  variables: [
    'exec_prefix=${prefix}',
    'datadir=${prefix}/' + get_option('datadir'),
    'interfacesdir=${datadir}/accountsservice/interfaces',
  ],
  requires_private : [
    'gio-2.0',
    'glib-2.0',
    'gobject-2.0',
    'polkit-gobject-1',
  ],
)

if get_option('introspection')
  as_gir_gen_sources = gnome.generate_gir(
    libaccountsservice,
    sources: sources + headers + [enum_sources[1]],
    includes: ['GObject-2.0', 'Gio-2.0'],
    dependencies: libaccountsservice_dep,
    namespace: 'AccountsService',
    nsversion: act_api_version,
    identifier_prefix: act_id,
    header: join_paths(subdir, 'act.h'),
    install: true,
  )

  if get_option('vapi')
    gnome.generate_vapi(act_name,
      sources : as_gir_gen_sources[0],
      packages : 'gio-2.0',
      install : true,
    )
  endif
endif