xref: /openbmc/phosphor-post-code-manager/meson.build (revision d4430278581a501ebaa80a7c6084867529224b0f)
184855abeSManojkiran Edaproject(
284855abeSManojkiran Eda    'post-code-manager',
384855abeSManojkiran Eda    'cpp',
4*d4430278SPatrick Williams    default_options: ['cpp_std=c++23', 'warning_level=3', 'werror=true'],
584855abeSManojkiran Eda    license: 'Apache-2.0',
65c75dd56SPatrick Williams    meson_version: '>=1.1.1',
784855abeSManojkiran Eda    version: '1.0',
884855abeSManojkiran Eda)
984855abeSManojkiran Eda
1084855abeSManojkiran Eda
1184855abeSManojkiran Edaconf_data = configuration_data()
12*d4430278SPatrick Williamsconf_data.set_quoted(
13*d4430278SPatrick Williams    'DBUS_OBJECT_NAME',
14*d4430278SPatrick Williams    '/xyz/openbmc_project/State/Boot/PostCode',
15*d4430278SPatrick Williams)
1684855abeSManojkiran Edaconf_data.set_quoted('DBUS_INTF_NAME', 'xyz.openbmc_project.State.Boot.PostCode')
17*d4430278SPatrick Williamsconf_data.set_quoted(
18*d4430278SPatrick Williams    'POSTCODE_DISPLAY_PATH',
19*d4430278SPatrick Williams    get_option('postcode-display-path'),
20*d4430278SPatrick Williams)
2184855abeSManojkiran Edaconf_data.set('MAX_BOOT_CYCLE_COUNT', get_option('max-boot-cycle-count'))
22*d4430278SPatrick Williamsconf_data.set(
23*d4430278SPatrick Williams    'MAX_POST_CODE_SIZE_PER_CYCLE',
24*d4430278SPatrick Williams    get_option('max-post-code-size-per-cycle'),
25*d4430278SPatrick Williams)
2684855abeSManojkiran Eda
278eb4d58bSPatrick Williamsif get_option('bios-post-code-log').allowed()
2884855abeSManojkiran Eda    add_project_arguments('-DENABLE_BIOS_POST_CODE_LOG', language: 'cpp')
2984855abeSManojkiran Edaendif
3084855abeSManojkiran Eda
31*d4430278SPatrick Williamsconfigure_file(output: 'config.h', configuration: conf_data)
3284855abeSManojkiran Eda
33e709874aSPatrick Williamssdbusplus = dependency('sdbusplus')
34e709874aSPatrick Williamsphosphor_logging = dependency('phosphor-logging')
35e709874aSPatrick Williamsphosphor_dbus_interfaces = dependency('phosphor-dbus-interfaces')
3684855abeSManojkiran Eda
3784855abeSManojkiran Edacxx = meson.get_compiler('cpp')
3884855abeSManojkiran Edacereal_dep = dependency('cereal', required: false)
3984855abeSManojkiran Edahas_cereal = cxx.has_header_symbol(
4084855abeSManojkiran Eda    'cereal/cereal.hpp',
4184855abeSManojkiran Eda    'cereal::specialize',
4284855abeSManojkiran Eda    dependencies: cereal_dep,
43*d4430278SPatrick Williams    required: false,
44*d4430278SPatrick Williams)
4584855abeSManojkiran Edaif not has_cereal
4684855abeSManojkiran Eda    cereal_opts = import('cmake').subproject_options()
47*d4430278SPatrick Williams    cereal_opts.add_cmake_defines(
48*d4430278SPatrick Williams        {'BUILD_TESTS': 'OFF', 'SKIP_PERFORMANCE_COMPARISON': 'ON'},
49*d4430278SPatrick Williams    )
5084855abeSManojkiran Eda    cereal_proj = import('cmake').subproject(
5184855abeSManojkiran Eda        'cereal',
5284855abeSManojkiran Eda        options: cereal_opts,
53*d4430278SPatrick Williams        required: false,
54*d4430278SPatrick Williams    )
5584855abeSManojkiran Eda    assert(cereal_proj.found(), 'cereal is required')
5684855abeSManojkiran Eda    cereal_dep = cereal_proj.dependency('cereal')
5784855abeSManojkiran Edaendif
5884855abeSManojkiran Eda
5984855abeSManojkiran Edasystemd_system_unit_dir = dependency('systemd').get_variable(
60*d4430278SPatrick Williams    'systemdsystemunitdir',
61*d4430278SPatrick Williams)
6284855abeSManojkiran Eda
63*d4430278SPatrick Williamsinstall_subdir(
64*d4430278SPatrick Williams    'service_files',
6584855abeSManojkiran Eda    install_dir: systemd_system_unit_dir,
66*d4430278SPatrick Williams    strip_directory: true,
67*d4430278SPatrick Williams)
6884855abeSManojkiran Eda
6984855abeSManojkiran Edaexecutable(
7084855abeSManojkiran Eda    'post-code-manager',
7184855abeSManojkiran Eda    'src/main.cpp',
7284855abeSManojkiran Eda    'src/post_code.cpp',
7384855abeSManojkiran Eda    install: true,
7484855abeSManojkiran Eda    dependencies: [
7584855abeSManojkiran Eda        sdbusplus,
7684855abeSManojkiran Eda        phosphor_dbus_interfaces,
7784855abeSManojkiran Eda        phosphor_logging,
78*d4430278SPatrick Williams        cereal_dep,
79*d4430278SPatrick Williams    ],
80*d4430278SPatrick Williams    include_directories: 'inc',
81*d4430278SPatrick Williams)
82