blob: a14a2214350019f7a1fe288625fdf748bd7e3f88 [file] [log] [blame]
Patrick Williams75edb2e2023-07-19 11:09:44 -05001project(
2 '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',
12)
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(
29 'fru-gen.cpp'.underscorify(),
30 input: [
31 'scripts/fru_gen.py',
32 get_option('fru_yaml'),
33 ],
34 output: 'fru-gen.cpp',
35 command: [
36 python_prog, '@INPUT0@',
37 '-i', '@INPUT1@',
38 '-o', meson.current_build_dir(),
39 'generate-cpp',
40 ],
41)
42
43properties_gen = custom_target(
44 'extra-properties-gen.cpp'.underscorify(),
45 input: [
46 'scripts/extra-properties.py',
47 get_option('properties_yaml'),
48 ],
49 output: 'extra-properties-gen.cpp',
50 command: [
51 python_prog, '@INPUT0@',
52 '-e', '@INPUT1@',
53 ],
54)
55
56writefrudata_lib = library(
57 'writefrudata',
58 fru_gen,
59 properties_gen,
60 'fru_area.cpp',
61 'frup.cpp',
62 'writefrudata.cpp',
63 dependencies: [
64 sdbusplus_dep,
65 phosphor_logging_dep,
66 ipmid_dep,
67 ],
68 version: meson.project_version(),
69 install: true,
70)
71
72writefrudata_dep = declare_dependency(
73 link_with: writefrudata_lib,
74)
75
76strgfnhandler_lib = library(
77 'strgfnhandler',
78 'strgfnhandler.cpp',
79 dependencies: [
80 writefrudata_dep,
81 phosphor_logging_dep,
82 ipmid_dep,
83 ],
84 override_options: [ 'b_lundef=false' ],
85 version: meson.project_version(),
86 install: true,
Patrick Williams71533432023-07-19 15:03:40 -050087 install_dir: get_option('libdir') / 'ipmid-providers',
Patrick Williams75edb2e2023-07-19 11:09:44 -050088)
89
90executable(
91 'phosphor-read-eeprom',
92 'readeeprom.cpp',
93 dependencies: [
94 CLI11_dep,
95 phosphor_logging_dep,
96 sdbusplus_dep,
97 writefrudata_dep,
98 ],
99 install: true,
100)