summaryrefslogtreecommitdiffstats
path: root/libgdm/meson.build
blob: 3f8cafbb74c42edd3e5c722492cf7313a4231270 (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
libgdm_manager_dbus_gen = gnome.gdbus_codegen('gdm-manager-glue',
    sources: '..' / 'daemon' / 'gdm-manager.xml',
    namespace: 'Gdm',
    interface_prefix: 'org.gnome.DisplayManager',
    autocleanup: 'all',
    annotations: [
      [ 'org.gnome.DisplayManager.Manager', 'org.gtk.GDBus.C.Name', 'Manager' ],
    ],
    build_by_default: true,
)
libgdm_client_dbus_gen = gnome.gdbus_codegen('gdm-client-glue',
    sources: '..' / 'daemon' / 'gdm-session.xml',
    namespace: 'Gdm',
    interface_prefix: 'org.gnome.DisplayManager',
    autocleanup: 'all',
    annotations: [
      [ 'org.gnome.DisplayManager.UserVerifier', 'org.gtk.GDBus.C.Name', 'UserVerifier' ],
      [ 'org.gnome.DisplayManager.Greeter', 'org.gtk.GDBus.C.Name', 'Greeter' ],
      [ 'org.gnome.DisplayManager.RemoteGreeter', 'org.gtk.GDBus.C.Name', 'RemoteGreeter' ],
      [ 'org.gnome.DisplayManager.Chooser', 'org.gtk.GDBus.C.Name', 'Chooser' ],
    ],
    build_by_default: true,
    install_header: true,
    install_dir: get_option('includedir') / meson.project_name()
)

libgdm_built_sources = [
  libgdm_manager_dbus_gen,
  libgdm_client_dbus_gen,
]

libgdm_sources = files(
  'gdm-client.c',
  'gdm-sessions.c',
  'gdm-user-switching.c',
)

libgdm_public_headers = [
  'gdm-client.h',
  'gdm-sessions.h',
  'gdm-user-switching.h',
  # gdm-client-glue.h is automatically installed
]

install_headers(libgdm_public_headers,
  subdir: meson.project_name(),
)

libgdm_headers = [
  libgdm_public_headers,
  libgdm_client_dbus_gen[1],
  libgdm_manager_dbus_gen[1],
]

libgdm_deps = [
  glib_dep,
  gio_dep,
  gio_unix_dep,
  libsystemd_dep,
  libgdmcommon_dep,
]

libgdm_link_flags = [
  '-Wl,--version-script,@0@/libgdm.map'.format(meson.current_source_dir()),
]

libgdm = library('gdm',
  libgdm_sources + libgdm_built_sources,
  version: '1.0.0',
  dependencies: libgdm_deps,
  include_directories: config_h_dir,
  link_args: libgdm_link_flags,
  install: true,
)

libgdm_gir_includes = [
  'GLib-2.0',
  'GObject-2.0',
  'Gio-2.0',
]

libgdm_dep = declare_dependency(
  link_with: libgdm,
  dependencies: libgdm_deps,
  include_directories: include_directories('.'),
  sources: libgdm_built_sources,
)

libgdm_gir = gnome.generate_gir(libgdm,
  sources: libgdm_headers + libgdm_sources,
  namespace: 'Gdm',
  nsversion: '1.0',
  identifier_prefix: 'Gdm',
  includes: libgdm_gir_includes,
  install: true,
)

# Pkg-config file
pkgconfig.generate(libgdm,
  name: 'GDM Client Library',
  description: 'Client Library for communicating with GDM daemon',
  filebase: meson.project_name(),
  requires: gobject_dep,
)