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