blob: 65d05c676dafb9402b256a5000e5e521cbf0d2d7 [file] [log] [blame]
Patrick Williams75edb2e2023-07-19 11:09:44 -05001project(
Patrick Williams4bb4cfd2025-02-01 08:36:41 -05002 'ipmi-fru-parser',
3 'cpp',
4 version: '1.0',
5 default_options: [
6 'buildtype=debugoptimized',
7 'cpp_std=c++23',
8 'warning_level=3',
9 'werror=true',
10 ],
11 meson_version: '>=1.1.1',
Patrick Williams75edb2e2023-07-19 11:09:44 -050012)
13
14cxx = meson.get_compiler('cpp')
15
16phosphor_logging_dep = dependency('phosphor-logging')
17sdbusplus_dep = dependency('sdbusplus')
18ipmid_dep = dependency('libipmid')
19
20if cxx.has_header('CLI/CLI.hpp')
21 CLI11_dep = declare_dependency()
22else
23 CLI11_dep = dependency('CLI11')
24endif
25
26python_prog = find_program('python3', native: true)
27
28fru_gen = custom_target(
Patrick Williams4bb4cfd2025-02-01 08:36:41 -050029 'fru-gen.cpp'.underscorify(),
30 input: ['scripts/fru_gen.py', get_option('fru_yaml')],
31 output: 'fru-gen.cpp',
32 command: [
33 python_prog,
34 '@INPUT0@',
35 '-i',
36 '@INPUT1@',
37 '-o',
38 meson.current_build_dir(),
39 'generate-cpp',
40 ],
Patrick Williams75edb2e2023-07-19 11:09:44 -050041)
42
43properties_gen = custom_target(
Patrick Williams4bb4cfd2025-02-01 08:36:41 -050044 'extra-properties-gen.cpp'.underscorify(),
45 input: ['scripts/extra-properties.py', get_option('properties_yaml')],
46 output: 'extra-properties-gen.cpp',
47 command: [python_prog, '@INPUT0@', '-e', '@INPUT1@'],
Patrick Williams75edb2e2023-07-19 11:09:44 -050048)
49
50writefrudata_lib = library(
Patrick Williams4bb4cfd2025-02-01 08:36:41 -050051 'writefrudata',
52 fru_gen,
53 properties_gen,
54 'fru_area.cpp',
55 'frup.cpp',
56 'writefrudata.cpp',
57 dependencies: [sdbusplus_dep, phosphor_logging_dep, ipmid_dep],
58 version: meson.project_version(),
59 install: true,
Patrick Williams75edb2e2023-07-19 11:09:44 -050060)
61
Patrick Williams4bb4cfd2025-02-01 08:36:41 -050062writefrudata_dep = declare_dependency(link_with: writefrudata_lib)
Patrick Williams75edb2e2023-07-19 11:09:44 -050063
64strgfnhandler_lib = library(
Patrick Williams4bb4cfd2025-02-01 08:36:41 -050065 'strgfnhandler',
66 'strgfnhandler.cpp',
67 dependencies: [writefrudata_dep, phosphor_logging_dep, ipmid_dep],
68 override_options: ['b_lundef=false'],
69 version: meson.project_version(),
70 install: true,
71 install_dir: get_option('libdir') / 'ipmid-providers',
Patrick Williams75edb2e2023-07-19 11:09:44 -050072)
73
74executable(
Patrick Williams4bb4cfd2025-02-01 08:36:41 -050075 'phosphor-read-eeprom',
76 'readeeprom.cpp',
77 dependencies: [
78 CLI11_dep,
79 phosphor_logging_dep,
80 sdbusplus_dep,
81 writefrudata_dep,
82 ],
83 install: true,
Patrick Williams75edb2e2023-07-19 11:09:44 -050084)