blob: 03f3031585d514e5c3006e3d961b9817ba7d0c6d [file] [log] [blame]
Patrick Williamsbb939ea2021-12-03 15:41:02 -06001project(
2 'phosphor-certificate-manager',
3 'cpp',
4 default_options: [
5 'buildtype=debugoptimized',
Patrick Williams23778dd2023-07-17 10:07:23 -05006 'cpp_std=c++23',
Patrick Williamsbb939ea2021-12-03 15:41:02 -06007 'warning_level=3',
8 'werror=true',
9 ],
Patrick Williams23778dd2023-07-17 10:07:23 -050010 meson_version: '>=1.1.1',
Patrick Williamsbb939ea2021-12-03 15:41:02 -060011)
12
13cpp = meson.get_compiler('cpp')
14
Patrick Williams447d55d2022-03-21 10:18:25 -050015sdbusplus_dep = dependency('sdbusplus')
16sdeventplus_dep = dependency('sdeventplus')
17phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
18phosphor_logging_dep = dependency('phosphor-logging')
Patrick Williamsbb939ea2021-12-03 15:41:02 -060019
Nan Zhou7047be62022-03-10 12:34:06 -080020cli11_dep = dependency('cli11', required: false)
21has_cli11 = meson.get_compiler('cpp').has_header_symbol(
Patrick Williamsd7197012025-02-01 08:37:54 -050022 'CLI/CLI.hpp',
23 'CLI::App',
24 dependencies: cli11_dep,
25 required: false,
26)
Nan Zhou7047be62022-03-10 12:34:06 -080027if not has_cli11
Patrick Williamsd7197012025-02-01 08:37:54 -050028 cli11_proj = subproject('cli11', required: false)
29 assert(cli11_proj.found(), 'CLI11 is required')
30 cli11_dep = cli11_proj.get_variable('CLI11_dep')
Nan Zhou7047be62022-03-10 12:34:06 -080031endif
32
Patrick Williamsbb939ea2021-12-03 15:41:02 -060033systemd_dep = dependency('systemd')
34openssl_dep = dependency('openssl')
35
36config_data = configuration_data()
Patrick Williamsd7197012025-02-01 08:37:54 -050037config_data.set('authority_limit', get_option('authority-limit'))
38config_data.set('authorities_list_name', get_option('authorities-list-name'))
Patrick Williamsbb939ea2021-12-03 15:41:02 -060039
Patrick Williamsd4c5dbc2025-02-07 10:54:31 -050040if get_option('allow-expired').allowed()
Patrick Williamsd7197012025-02-01 08:37:54 -050041 config_data.set('allow_expired', 'true')
Lei YU3c478142022-06-27 14:42:47 +080042else
Patrick Williamsd7197012025-02-01 08:37:54 -050043 config_data.set('allow_expired', 'false')
Lei YU3c478142022-06-27 14:42:47 +080044endif
45
Patrick Williamsbb939ea2021-12-03 15:41:02 -060046configure_file(
Patrick Williamse0e2cce2021-12-13 08:40:50 -060047 input: 'config.h.in',
Patrick Williamsbb939ea2021-12-03 15:41:02 -060048 output: 'config.h',
Patrick Williamsd7197012025-02-01 08:37:54 -050049 configuration: config_data,
Patrick Williamsbb939ea2021-12-03 15:41:02 -060050)
51
52phosphor_certificate_deps = [
53 openssl_dep,
54 phosphor_dbus_interfaces_dep,
55 phosphor_logging_dep,
56 sdbusplus_dep,
57 sdeventplus_dep,
Nan Zhou7047be62022-03-10 12:34:06 -080058 cli11_dep,
Patrick Williamsbb939ea2021-12-03 15:41:02 -060059]
60
61cert_manager_lib = static_library(
62 'phosphor-certificate-manager',
63 [
64 'argument.cpp',
65 'certificate.cpp',
66 'certs_manager.cpp',
67 'csr.cpp',
68 'watch.cpp',
Nan Zhoue869bb62021-12-30 11:34:42 -080069 'x509_utils.cpp',
Patrick Williamsbb939ea2021-12-03 15:41:02 -060070 ],
71 dependencies: phosphor_certificate_deps,
72)
73
74cert_manager_dep = declare_dependency(
75 link_with: cert_manager_lib,
Patrick Williamsd7197012025-02-01 08:37:54 -050076 dependencies: phosphor_certificate_deps,
Patrick Williamsbb939ea2021-12-03 15:41:02 -060077)
78
79executable(
80 'phosphor-certificate-manager',
81 'mainapp.cpp',
82 dependencies: cert_manager_dep,
83 install: true,
84)
85
Patrick Williamsd4c5dbc2025-02-07 10:54:31 -050086if get_option('ca-cert-extension').allowed()
Patrick Williamsd7197012025-02-01 08:37:54 -050087 subdir('bmc-vmi-ca')
Patrick Williamsbb939ea2021-12-03 15:41:02 -060088endif
89
90subdir('dist')
91
Patrick Williamsd4c5dbc2025-02-07 10:54:31 -050092if get_option('tests').allowed()
Patrick Williamsbb939ea2021-12-03 15:41:02 -060093 subdir('test')
94endif
95