xref: /openbmc/fb-ipmi-oem/meson.build (revision d1471241918d738513eaf342dbd9b1729b663e4f)
1e39f9393SWilly Tuproject(
2e39f9393SWilly Tu    'fb-ipmi-oem',
3e39f9393SWilly Tu    'cpp',
4e39f9393SWilly Tu    version: '0.1',
57c24dde3SPatrick Williams    meson_version: '>=1.1.1',
6*d1471241SPatrick Williams    default_options: ['werror=true', 'warning_level=3', 'cpp_std=c++23'],
7*d1471241SPatrick Williams)
8e39f9393SWilly Tu
9e39f9393SWilly Tu# Project Arguments
10e39f9393SWilly Tucpp = meson.get_compiler('cpp')
11e39f9393SWilly Tuadd_project_arguments(
12*d1471241SPatrick Williams    cpp.get_supported_arguments(
13*d1471241SPatrick Williams        [
14e39f9393SWilly Tu            '-DBOOST_ERROR_CODE_HEADER_ONLY',
15e39f9393SWilly Tu            '-DBOOST_SYSTEM_NO_DEPRECATED',
16e39f9393SWilly Tu            '-DBOOST_ALL_NO_LIB',
17e39f9393SWilly Tu            '-DBOOST_NO_RTTI',
18e39f9393SWilly Tu            '-DBOOST_NO_TYPEID',
19e39f9393SWilly Tu            '-DBOOST_ASIO_DISABLE_THREADS',
20e39f9393SWilly Tu            '-DBOOST_COROUTINES_NO_DEPRECATION_WARNING',
21e39f9393SWilly Tu            '-Wno-psabi',
22e39f9393SWilly Tu            '-Wno-pedantic',
23*d1471241SPatrick Williams        ],
24*d1471241SPatrick Williams    ),
25*d1471241SPatrick Williams    language: 'cpp',
26*d1471241SPatrick Williams)
27e39f9393SWilly Tu
28708286a8SPatrick Williamsfs = import('fs')
29708286a8SPatrick Williams
30e39f9393SWilly Tuhost_instances = '0'
31e39f9393SWilly Tuif get_option('host-instances') != ''
32e39f9393SWilly Tu    host_instances = get_option('host-instances')
33e39f9393SWilly Tuendif
34e39f9393SWilly Tu
354ec80567SJayashree Dhanapalconf_data = configuration_data()
364ec80567SJayashree Dhanapalconf_data.set_quoted('INSTANCES', host_instances)
374ae63e71SBonnie Loconf_data.set('POST_CODE_BYTES', get_option('post-code-bytes'))
38b340aa28SPeter Yinconf_data.set('DEBUG_CARD_FRAME_SIZE', get_option('debug-card-frame-size'))
394ec80567SJayashree Dhanapal
40*d1471241SPatrick Williamsconfigure_file(
41*d1471241SPatrick Williams    input: 'meson_config.h.in',
424ec80567SJayashree Dhanapal    output: 'config.h',
43*d1471241SPatrick Williams    configuration: conf_data,
44*d1471241SPatrick Williams)
45e39f9393SWilly Tu
46d50efc03SPatrick Williamsif get_option('bic').allowed()
47e39f9393SWilly Tu    add_project_arguments(
48*d1471241SPatrick Williams        cpp.get_supported_arguments(['-DBIC_ENABLED']),
49*d1471241SPatrick Williams        language: 'cpp',
50*d1471241SPatrick Williams    )
51e39f9393SWilly Tuendif
52e39f9393SWilly Tu
53e39f9393SWilly Turoot_inc = include_directories('.', 'include')
54e39f9393SWilly Tu
55e39f9393SWilly Tu# Dependencies
562e9921c2SPatrick Williamssdbusplus_dep = dependency('sdbusplus')
572e9921c2SPatrick Williamsphosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
58e39f9393SWilly Tuphosphor_logging_dep = dependency('phosphor-logging')
59e39f9393SWilly Tuipmid_dep = dependency('libipmid')
602e9921c2SPatrick Williamschannellayer_dep = dependency('libchannellayer')
612e9921c2SPatrick Williamsuserlayer_dep = dependency('libuserlayer')
622e9921c2SPatrick Williams
63483f00a5SPatrick Williamsnlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
64e39f9393SWilly Tu
65e39f9393SWilly Tuzfboemcmds_pre = declare_dependency(
66e39f9393SWilly Tu    include_directories: root_inc,
67e39f9393SWilly Tu    dependencies: [
682e9921c2SPatrick Williams        channellayer_dep,
692e9921c2SPatrick Williams        ipmid_dep,
702e9921c2SPatrick Williams        nlohmann_json_dep,
712e9921c2SPatrick Williams        phosphor_dbus_interfaces_dep,
72e39f9393SWilly Tu        phosphor_logging_dep,
73e39f9393SWilly Tu        sdbusplus_dep,
74e39f9393SWilly Tu        userlayer_dep,
75*d1471241SPatrick Williams    ],
76*d1471241SPatrick Williams)
77e39f9393SWilly Tu
7817bd2eabSPatrick Williamszfboemcmds_lib = library(
79e39f9393SWilly Tu    'zfboemcmds',
80b2ae88b4Scchoux    'src/commandutils.cpp',
81e39f9393SWilly Tu    'src/oemcommands.cpp',
82e39f9393SWilly Tu    'src/appcommands.cpp',
83e39f9393SWilly Tu    'src/storagecommands.cpp',
84e39f9393SWilly Tu    'src/usb-dbg.cpp',
85e39f9393SWilly Tu    'src/selcommands.cpp',
86e39f9393SWilly Tu    'src/transportcommands.cpp',
87e39f9393SWilly Tu    'src/biccommands.cpp',
88d96e2701SPotin Lai    'src/groupextcommands.cpp',
89e39f9393SWilly Tu    implicit_include_directories: false,
90e39f9393SWilly Tu    dependencies: zfboemcmds_pre,
9117bd2eabSPatrick Williams    version: meson.project_version(),
9217bd2eabSPatrick Williams    override_options: ['b_lundef=false'],
93e39f9393SWilly Tu    install: true,
94*d1471241SPatrick Williams    install_dir: get_option('libdir') / 'ipmid-providers',
95*d1471241SPatrick Williams)
963048dd54SKarthikeyan Pasupathi
973048dd54SKarthikeyan Pasupathiif get_option('machine') != ''
98*d1471241SPatrick Williams    configfile = ['cri_sensors.json', 'gpio_desc.json', 'post_desc.json']
993048dd54SKarthikeyan Pasupathi    foreach c : configfile
100708286a8SPatrick Williams        file = join_paths('configs', get_option('machine'), c)
101708286a8SPatrick Williams        if not fs.is_file(file)
102708286a8SPatrick Williams            warning('Missing config file: ' + file)
103708286a8SPatrick Williams        else
1043048dd54SKarthikeyan Pasupathi            install_data(
1053048dd54SKarthikeyan Pasupathi                sources: file,
106*d1471241SPatrick Williams                install_dir: get_option('datadir') / 'lcd-debug',
107708286a8SPatrick Williams            )
108708286a8SPatrick Williams        endif
1093048dd54SKarthikeyan Pasupathi    endforeach
1103048dd54SKarthikeyan Pasupathiendif
111