| project( |
| 'ipmi-fru-parser', |
| 'cpp', |
| version: '1.0', |
| default_options: [ |
| 'buildtype=debugoptimized', |
| 'cpp_std=c++23', |
| 'warning_level=3', |
| 'werror=true', |
| ], |
| meson_version: '>=1.1.1', |
| ) |
| |
| cxx = meson.get_compiler('cpp') |
| |
| phosphor_logging_dep = dependency('phosphor-logging') |
| sdbusplus_dep = dependency('sdbusplus') |
| ipmid_dep = dependency('libipmid') |
| |
| if cxx.has_header('CLI/CLI.hpp') |
| CLI11_dep = declare_dependency() |
| else |
| CLI11_dep = dependency('CLI11') |
| endif |
| |
| python_prog = find_program('python3', native: true) |
| |
| fru_gen = custom_target( |
| 'fru-gen.cpp'.underscorify(), |
| input: ['scripts/fru_gen.py', get_option('fru_yaml')], |
| output: 'fru-gen.cpp', |
| command: [ |
| python_prog, |
| '@INPUT0@', |
| '-i', |
| '@INPUT1@', |
| '-o', |
| meson.current_build_dir(), |
| 'generate-cpp', |
| ], |
| ) |
| |
| properties_gen = custom_target( |
| 'extra-properties-gen.cpp'.underscorify(), |
| input: ['scripts/extra-properties.py', get_option('properties_yaml')], |
| output: 'extra-properties-gen.cpp', |
| command: [python_prog, '@INPUT0@', '-e', '@INPUT1@'], |
| ) |
| |
| writefrudata_lib = library( |
| 'writefrudata', |
| fru_gen, |
| properties_gen, |
| 'fru_area.cpp', |
| 'frup.cpp', |
| 'writefrudata.cpp', |
| dependencies: [sdbusplus_dep, phosphor_logging_dep, ipmid_dep], |
| version: meson.project_version(), |
| install: true, |
| ) |
| |
| writefrudata_dep = declare_dependency(link_with: writefrudata_lib) |
| |
| strgfnhandler_lib = library( |
| 'strgfnhandler', |
| 'strgfnhandler.cpp', |
| dependencies: [writefrudata_dep, phosphor_logging_dep, ipmid_dep], |
| override_options: ['b_lundef=false'], |
| version: meson.project_version(), |
| install: true, |
| install_dir: get_option('libdir') / 'ipmid-providers', |
| ) |
| |
| executable( |
| 'phosphor-read-eeprom', |
| 'readeeprom.cpp', |
| dependencies: [ |
| CLI11_dep, |
| phosphor_logging_dep, |
| sdbusplus_dep, |
| writefrudata_dep, |
| ], |
| install: true, |
| ) |