blob: b61f44a231d6d6c871e4336246d03f1eaaedeef8 [file] [log] [blame]
SunnySrivastava19847ef54422019-12-03 02:47:37 -06001project(
2 'openpower-vpd-parser',
3 'c',
4 'cpp',
5 default_options: [
PriyangaRamasamy1f0b1e62020-02-20 20:48:25 +05306 'cpp_std=c++17'
SunnySrivastava19847ef54422019-12-03 02:47:37 -06007 ],
8 version: '1.0'
9)
10
11build_tests = get_option('tests')
12
13sdbusplus = dependency('sdbusplus')
14phosphor_logging = dependency('phosphor-logging')
15
16compiler = meson.get_compiler('cpp')
17python = find_program('python3', required:true)
18
19if get_option('ibm-parser').enabled()
20compiler.has_header('CLI/CLI.hpp')
21compiler.has_header('nlohmann/json.hpp')
22configure_file(output: 'config.h',
23 configuration :{
24 'INVENTORY_JSON': '"'+get_option('INVENTORY_JSON')+'"',
PriyangaRamasamy1f0b1e62020-02-20 20:48:25 +053025 'INVENTORY_PATH': '"'+get_option('INVENTORY_PATH')+'"',
SunnySrivastava1984a7392592020-03-09 10:19:33 -050026 'IPZ_INTERFACE': '"'+get_option('IPZ_INTERFACE')+'"',
PriyangaRamasamy02d4d4e2020-02-24 14:54:45 +053027 'INVENTORY_MANAGER_SERVICE': '"'+get_option('INVENTORY_MANAGER_SERVICE')+'"',
SunnySrivastava1984a7392592020-03-09 10:19:33 -050028 'BUSNAME' : '"' + get_option('BUSNAME') + '"',
29 'OBJPATH' : '"' + get_option('OBJPATH') + '"',
30 'IFACE' : '"' + get_option('IFACE') + '"',
PriyangaRamasamycdf943c2020-03-18 02:25:30 +053031 'OBJECT_MAPPER_SERVICE' : '"'+get_option('OBJECT_MAPPER_SERVICE')+'"',
32 'OBJECT_MAPPER_OBJECT' : '"'+get_option('OBJECT_MAPPER_OBJECT')+'"',
33 'POWER_SUPPLY_TYPE_INTERFACE' : '"'+get_option('POWER_SUPPLY_TYPE_INTERFACE')+'"'
SunnySrivastava19847ef54422019-12-03 02:47:37 -060034 }
PriyangaRamasamy1f0b1e62020-02-20 20:48:25 +053035 )
SunnySrivastava19847ef54422019-12-03 02:47:37 -060036 ibm_read_vpd_SOURCES = ['ibm_vpd_app.cpp',
37 'ibm_vpd_type_check.cpp',
38 'parser.cpp',
39 'impl.cpp',
40 'utils.cpp',
41 'keyword_vpd_parser.cpp',
42 'vpdecc/vpdecc.c',
43 'vpdecc/vpdecc_support.c'
44 ]
45
46 ibm_vpd_exe = executable(
47 'ibm-read-vpd',
48 ibm_read_vpd_SOURCES,
49 dependencies: [
50 sdbusplus,
51 phosphor_logging,
52 ],
53 install: true,
54 cpp_args : '-DIPZ_PARSER'
55 )
PriyangaRamasamy1f0b1e62020-02-20 20:48:25 +053056
57 vpd_tool_SOURCES = ['vpd_tool.cpp',
58 'vpd_tool_impl.cpp'
59 ]
60
61 vpd_tool_exe = executable(
62 'vpd-tool',
63 vpd_tool_SOURCES,
64 dependencies: [
65 sdbusplus
66 ],
PriyangaRamasamycdf943c2020-03-18 02:25:30 +053067 install: true
PriyangaRamasamy1f0b1e62020-02-20 20:48:25 +053068 )
SunnySrivastava1984a7392592020-03-09 10:19:33 -050069if get_option('vpd-manager').enabled()
70 subdir('vpd-manager')
71endif
72
SunnySrivastava19847ef54422019-12-03 02:47:37 -060073else
74 FRUGEN = '$srcdir/extra-properties.py -e' + get_option('FRU_YAML')
75 PROPGEN = '$srcdir/extra-properties.py -e' + get_option('PROP_YAML')
76
77 src_dir = meson.source_root()
78 FRU_GEN_SCRIPT = src_dir + '/writefru.py'
79 FRU_GEN_SCRIPT_FILES = src_dir + '/writefru.yaml'
80
81 PROP_GEN_SCRIPT = src_dir + '/extra-properties.py'
82 PROP_GEN_SCRIPT_FILES = src_dir + '/extra-properties-example.yaml'
83
84 writefru_hpp = custom_target('writefru.hpp',
85 command:[python,
86 FRU_GEN_SCRIPT,
87 '-i',
88 get_option('FRU_YAML')
89 ],
90 depend_files :['writefru.mako.hpp',
91 'writefru.py',
92 get_option('FRU_YAML')
93 ],
94 output:'writefru.hpp'
95 )
96
97 extra_properties_gen_hpp = custom_target(
98 'extra-properties-gen.hpp',
99 command:[
100 python,
101 PROP_GEN_SCRIPT,
102 '-e',
103 get_option('PROP_YAML')
104 ],
105 depend_files : ['extra-properties.mako.hpp',
106 'extra-properties.py',
107 get_option('PROP_YAML')
108 ],
109 output:'extra-properties-gen.hpp'
110 )
111
112 openpower_read_vpd_SOURCES = ['app.cpp',
113 'args.cpp',
114 'impl.cpp',
115 'parser.cpp',
116 'write.cpp',
117 'utils.cpp',
118 writefru_hpp,
119 extra_properties_gen_hpp
120 ]
121
122 openpower_read_vpd_exe= executable(
123 'openpower-read-vpd',
124 openpower_read_vpd_SOURCES,
125 dependencies: [
126 sdbusplus,
127 phosphor_logging,
128 ],
129 install: true,
130 )
131endif
132subdir('test')