summaryrefslogtreecommitdiff
path: root/src/libaccountsservice/meson.build
blob: 615a015e817bbba5da7f59c4475c6402365dc841 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
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),
)

dbus_sources = []

ifaces = [
  'Manager',
  'Seat',
  'Session',
]

namespace = 'ConsoleKit'
prefix = 'org.freedesktop.' + namespace

foreach iface: ifaces
  dbus_sources += gnome.gdbus_codegen(
    'ck-@0@-generated'.format(iface.to_lower()),
    '@0@.@1@.xml'.format(prefix, iface),
    interface_prefix: prefix,
    namespace: namespace,
  )
endforeach

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

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

if enable_systemd or enable_elogind
  deps += logind_dep
endif

libaccountsservice = shared_library(
  act_name,
  sources: sources + enum_sources + dbus_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',
  ],
)

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