blob: 6c5fff4b307097bcf0b6ac97187fbf0da094a481 [file] [log] [blame]
Willy Tue39f9392022-06-15 13:24:20 -07001project(
Patrick Williamsd1471242025-02-01 08:36:16 -05002 'fb-ipmi-oem',
3 'cpp',
4 version: '0.1',
5 meson_version: '>=1.1.1',
6 default_options: ['werror=true', 'warning_level=3', 'cpp_std=c++23'],
7)
Willy Tue39f9392022-06-15 13:24:20 -07008
9# Project Arguments
10cpp = meson.get_compiler('cpp')
11add_project_arguments(
Patrick Williamsd1471242025-02-01 08:36:16 -050012 cpp.get_supported_arguments(
13 [
14 '-DBOOST_ERROR_CODE_HEADER_ONLY',
15 '-DBOOST_SYSTEM_NO_DEPRECATED',
16 '-DBOOST_ALL_NO_LIB',
17 '-DBOOST_NO_RTTI',
18 '-DBOOST_NO_TYPEID',
19 '-DBOOST_ASIO_DISABLE_THREADS',
20 '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING',
21 '-Wno-psabi',
22 '-Wno-pedantic',
23 ],
24 ),
25 language: 'cpp',
26)
Willy Tue39f9392022-06-15 13:24:20 -070027
Patrick Williams708286a2022-07-25 09:49:50 -050028fs = import('fs')
29
Willy Tue39f9392022-06-15 13:24:20 -070030host_instances = '0'
31if get_option('host-instances') != ''
Patrick Williamsd1471242025-02-01 08:36:16 -050032 host_instances = get_option('host-instances')
Willy Tue39f9392022-06-15 13:24:20 -070033endif
34
Jayashree Dhanapal4ec80562022-06-28 15:41:47 +053035conf_data = configuration_data()
Patrick Williamsd1471242025-02-01 08:36:16 -050036conf_data.set_quoted('INSTANCES', host_instances)
Bonnie Lo4ae63e72023-02-09 15:27:54 +080037conf_data.set('POST_CODE_BYTES', get_option('post-code-bytes'))
Peter Yinb340aa22024-07-08 16:07:55 +080038conf_data.set('DEBUG_CARD_FRAME_SIZE', get_option('debug-card-frame-size'))
Jayashree Dhanapal4ec80562022-06-28 15:41:47 +053039
Patrick Williamsd1471242025-02-01 08:36:16 -050040configure_file(
41 input: 'meson_config.h.in',
42 output: 'config.h',
43 configuration: conf_data,
44)
Willy Tue39f9392022-06-15 13:24:20 -070045
Patrick Williamsd50efc02025-01-30 17:47:12 -050046if get_option('bic').allowed()
Patrick Williamsd1471242025-02-01 08:36:16 -050047 add_project_arguments(
48 cpp.get_supported_arguments(['-DBIC_ENABLED']),
49 language: 'cpp',
50 )
Willy Tue39f9392022-06-15 13:24:20 -070051endif
52
53root_inc = include_directories('.', 'include')
54
55# Dependencies
Patrick Williams2e9921c2022-07-25 10:17:05 -050056sdbusplus_dep = dependency('sdbusplus')
57phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
Willy Tue39f9392022-06-15 13:24:20 -070058phosphor_logging_dep = dependency('phosphor-logging')
Willy Tue39f9392022-06-15 13:24:20 -070059ipmid_dep = dependency('libipmid')
Patrick Williams2e9921c2022-07-25 10:17:05 -050060channellayer_dep = dependency('libchannellayer')
61userlayer_dep = dependency('libuserlayer')
62
Patrick Williams483f00a2023-12-07 17:05:54 -060063nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
Willy Tue39f9392022-06-15 13:24:20 -070064
65zfboemcmds_pre = declare_dependency(
Patrick Williamsd1471242025-02-01 08:36:16 -050066 include_directories: root_inc,
67 dependencies: [
68 channellayer_dep,
69 ipmid_dep,
70 nlohmann_json_dep,
71 phosphor_dbus_interfaces_dep,
72 phosphor_logging_dep,
73 sdbusplus_dep,
74 userlayer_dep,
75 ],
76)
Willy Tue39f9392022-06-15 13:24:20 -070077
Patrick Williams17bd2ea2022-06-24 16:44:51 -050078zfboemcmds_lib = library(
Patrick Williamsd1471242025-02-01 08:36:16 -050079 'zfboemcmds',
80 'src/commandutils.cpp',
81 'src/oemcommands.cpp',
82 'src/appcommands.cpp',
83 'src/storagecommands.cpp',
84 'src/usb-dbg.cpp',
85 'src/selcommands.cpp',
86 'src/transportcommands.cpp',
87 'src/biccommands.cpp',
88 'src/groupextcommands.cpp',
89 implicit_include_directories: false,
90 dependencies: zfboemcmds_pre,
91 version: meson.project_version(),
92 override_options: ['b_lundef=false'],
93 install: true,
94 install_dir: get_option('libdir') / 'ipmid-providers',
95)
Karthikeyan Pasupathi3048dd52022-06-30 21:51:11 +053096
97if get_option('machine') != ''
Patrick Williamsd1471242025-02-01 08:36:16 -050098 configfile = ['cri_sensors.json', 'gpio_desc.json', 'post_desc.json']
99 foreach c : configfile
100 file = join_paths('configs', get_option('machine'), c)
101 if not fs.is_file(file)
102 warning('Missing config file: ' + file)
103 else
104 install_data(
105 sources: file,
106 install_dir: get_option('datadir') / 'lcd-debug',
107 )
108 endif
109 endforeach
Karthikeyan Pasupathi3048dd52022-06-30 21:51:11 +0530110endif