]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/login/meson.build
276e920dfc33349ba0e25453b601ac5059591914
[thirdparty/systemd.git] / src / login / meson.build
1 # SPDX-License-Identifier: LGPL-2.1-or-later
2
3 systemd_logind_sources = files(
4 'logind.c',
5 )
6
7 logind_gperf_c = custom_target(
8 'logind_gperf.c',
9 input : 'logind-gperf.gperf',
10 output : 'logind-gperf.c',
11 command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
12
13 liblogind_core_sources = files(
14 'logind-action.c',
15 'logind-brightness.c',
16 'logind-button.c',
17 'logind-core.c',
18 'logind-dbus.c',
19 'logind-device.c',
20 'logind-inhibit.c',
21 'logind-polkit.c',
22 'logind-seat-dbus.c',
23 'logind-seat.c',
24 'logind-session-dbus.c',
25 'logind-session-device.c',
26 'logind-session.c',
27 'logind-user-dbus.c',
28 'logind-user.c',
29 'logind-wall.c',
30 )
31
32 liblogind_core_sources += [logind_gperf_c]
33
34 liblogind_core = static_library(
35 'logind-core',
36 liblogind_core_sources,
37 include_directories : includes,
38 dependencies : [libacl,
39 userspace],
40 build_by_default : false)
41
42 loginctl_sources = files(
43 'loginctl.c',
44 'sysfs-show.c',
45 )
46
47 executables += [
48 libexec_template + {
49 'name' : 'systemd-logind',
50 'dbus' : true,
51 'conditions' : ['ENABLE_LOGIND'],
52 'sources' : systemd_logind_sources,
53 'link_with' : [
54 liblogind_core,
55 libshared,
56 ],
57 'dependencies' : [
58 libacl,
59 threads,
60 ],
61 },
62 executable_template + {
63 'name' : 'loginctl',
64 'public' : true,
65 'conditions' : ['ENABLE_LOGIND'],
66 'sources' : loginctl_sources,
67 'dependencies' : [
68 liblz4,
69 libxz,
70 libzstd,
71 threads,
72 ],
73 },
74 executable_template + {
75 'name' : 'systemd-inhibit',
76 'public' : true,
77 'conditions' : ['ENABLE_LOGIND'],
78 'sources' : files('inhibit.c'),
79 },
80 libexec_template + {
81 'name' : 'systemd-user-runtime-dir',
82 'conditions' : ['ENABLE_LOGIND'],
83 'sources' : files('user-runtime-dir.c'),
84 },
85 test_template + {
86 'sources' : files('test-inhibit.c'),
87 'type' : 'manual',
88 },
89 test_template + {
90 'sources' : files('test-login-tables.c'),
91 'link_with' : [
92 liblogind_core,
93 libshared,
94 ],
95 'dependencies' : threads,
96 },
97 test_template + {
98 'sources' : files('test-session-properties.c'),
99 'type' : 'manual',
100 },
101 ]
102
103 simple_tests += files(
104 'test-login-shared.c'
105 )
106
107 modules += [
108 pam_template + {
109 'name' : 'pam_systemd',
110 'conditions' : [
111 'ENABLE_LOGIND',
112 'HAVE_PAM',
113 ],
114 'sources' : files('pam_systemd.c'),
115 'link_depends' : files('pam_systemd.sym'),
116 },
117 ]
118
119 enable_logind = conf.get('ENABLE_LOGIND') == 1
120
121 custom_target(
122 'logind.conf',
123 input : 'logind.conf.in',
124 output : 'logind.conf',
125 command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
126 install : enable_logind and install_sysconfdir_samples and pkgsysconfdir != 'no',
127 install_dir : pkgsysconfdir)
128
129 custom_target(
130 'systemd-user',
131 input : 'systemd-user.in',
132 output : 'systemd-user',
133 command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
134 install : enable_logind and pamconfdir != 'no',
135 install_dir : pamconfdir)
136
137 if enable_logind
138 install_data('org.freedesktop.login1.conf',
139 install_dir : dbuspolicydir)
140 install_data('org.freedesktop.login1.service',
141 install_dir : dbussystemservicedir)
142 install_data('org.freedesktop.login1.policy',
143 install_dir : polkitpolicydir)
144 endif