xref: /openbmc/phosphor-certificate-manager/dist/meson.build (revision d4c5dbc8c5845d43fa098e6f125a469f60f3ceb7)
1systemd_system_unit_dir = systemd_dep.get_variable('systemdsystemunitdir')
2busconfig_dir = get_option('datadir') / 'dbus-1' / 'system.d'
3cert_manager_dir = get_option('datadir') / 'phosphor-certificate-manager'
4
5certs = []
6busconfig = []
7service_files = ['phosphor-certificate-manager@.service']
8systemd_alias = []
9
10if get_option('ca-cert-extension').allowed()
11    busconfig += 'busconfig/bmc-vmi-ca.conf'
12    service_files += 'bmc-vmi-ca-manager.service'
13endif
14
15if get_option('config-bmcweb').allowed()
16    busconfig += 'busconfig/phosphor-bmcweb-cert-config.conf'
17    certs += 'env/bmcweb'
18    systemd_alias += [
19        [
20            '../phosphor-certificate-manager@.service',
21            'multi-user.target.wants/phosphor-certificate-manager@bmcweb.service',
22        ],
23    ]
24endif
25
26if get_option('config-authority').allowed()
27    busconfig += 'busconfig/phosphor-authority-cert-config.conf'
28    certs += 'env/authority'
29    systemd_alias += [
30        [
31            '../phosphor-certificate-manager@.service',
32            'multi-user.target.wants/phosphor-certificate-manager@authority.service',
33        ],
34    ]
35endif
36
37install_data(service_files, install_dir: systemd_system_unit_dir)
38
39install_data(busconfig, install_dir: busconfig_dir)
40
41install_data(certs, install_dir: cert_manager_dir)
42
43foreach service : systemd_alias
44    # Meson 0.61 will support this:
45    #install_symlink(
46    #      service,
47    #      install_dir: systemd_system_unit_dir,
48    #      pointing_to: link,
49    #  )
50    meson.add_install_script(
51        'sh',
52        '-c',
53        'mkdir -p $(dirname $DESTDIR/@0@/@1@)'.format(
54            systemd_system_unit_dir,
55            service[1],
56        ),
57    )
58    meson.add_install_script(
59        'sh',
60        '-c',
61        'ln -s @0@ $DESTDIR/@1@/@2@'.format(
62            service[0],
63            systemd_system_unit_dir,
64            service[1],
65        ),
66    )
67endforeach
68