summaryrefslogtreecommitdiffstats
path: root/src/home/meson.build
blob: f573c5fb15af69ac57f25f45373293a75d768750 (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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# SPDX-License-Identifier: LGPL-2.1-or-later

systemd_homework_sources = files(
        'home-util.c',
        'homework-blob.c',
        'homework-cifs.c',
        'homework-directory.c',
        'homework-fscrypt.c',
        'homework-luks.c',
        'homework-mount.c',
        'homework-password-cache.c',
        'homework-quota.c',
        'homework.c',
        'user-record-util.c',
)

if conf.get('HAVE_P11KIT') == 1
        systemd_homework_sources += files('homework-pkcs11.c')
endif
if conf.get('HAVE_LIBFIDO2') == 1
        systemd_homework_sources += files('homework-fido2.c')
endif

systemd_homed_sources = files(
        'home-util.c',
        'homed-bus.c',
        'homed-conf.c',
        'homed-home-bus.c',
        'homed-home.c',
        'homed-manager-bus.c',
        'homed-manager.c',
        'homed-operation.c',
        'homed-varlink.c',
        'homed.c',
        'user-record-password-quality.c',
        'user-record-sign.c',
        'user-record-util.c',
)

homed_gperf_c = custom_target(
        'homed_gperf.c',
        input : 'homed-gperf.gperf',
        output : 'homed-gperf.c',
        command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])

systemd_homed_sources += [homed_gperf_c]

homectl_sources = files(
        'home-util.c',
        'homectl-fido2.c',
        'homectl-pkcs11.c',
        'homectl-recovery-key.c',
        'homectl.c',
        'user-record-password-quality.c',
        'user-record-util.c',
)

pam_systemd_home_sources = files(
        'home-util.c',
        'pam_systemd_home.c',
        'user-record-util.c',
)

executables += [
        libexec_template + {
                'name' : 'systemd-homework',
                'conditions' : ['ENABLE_HOMED'],
                'sources' : systemd_homework_sources,
                'link_with' : [
                        libshared,
                        libshared_fdisk
                ],
                'dependencies' : [
                        libblkid,
                        libcrypt,
                        libfdisk,
                        libopenssl,
                        libp11kit_cflags,
                        threads,
                ],
        },
        libexec_template + {
                'name' : 'systemd-homed',
                'dbus' : true,
                'conditions' : ['ENABLE_HOMED'],
                'sources' : systemd_homed_sources,
                'include_directories' : includes +
                                        include_directories('.'),
                'dependencies' : [
                        libcrypt,
                        libm,
                        libopenssl,
                        threads,
                ],
        },
        executable_template + {
                'name' : 'homectl',
                'public' : true,
                'conditions' : ['ENABLE_HOMED'],
                'sources' : homectl_sources,
                'dependencies' : [
                        libcrypt,
                        libdl,
                        libopenssl,
                        libp11kit_cflags,
                        threads,
                ],
        },
        test_template + {
                'sources' : files('test-homed-regression-31896.c'),
                'conditions' : ['ENABLE_HOMED'],
                'type' : 'manual',
        },
]

modules += [
        pam_template + {
                'name' : 'pam_systemd_home',
                'conditions' : [
                        'ENABLE_HOMED',
                        'HAVE_PAM',
                ],
                'sources' : pam_systemd_home_sources,
                'dependencies' : [
                        libcrypt,
                        libpam_misc,
                        libpam,
                        threads,
                ],
                'version-script' : meson.current_source_dir() / 'pam_systemd_home.sym',
        },
]

if conf.get('ENABLE_HOMED') == 1
        install_data('org.freedesktop.home1.conf',
                     install_dir : dbuspolicydir)
        install_data('org.freedesktop.home1.service',
                     install_dir : dbussystemservicedir)
        install_data('org.freedesktop.home1.policy',
                     install_dir : polkitpolicydir)

        if install_sysconfdir_samples
                install_data('homed.conf',
                             install_dir : pkgconfigfiledir)
        endif

        meson.add_install_script(sh, '-c',
                                 ln_s.format(bindir / 'homectl',
                                             bindir / 'systemd-home-fallback-shell'))
endif