blob: 2389f472aef7252bcf70fb414515a8ee595dafdc [file] [log] [blame]
William A. Kennington IIId963adb2021-06-15 18:24:00 -07001project(
Patrick Williamsb17504d2025-02-01 08:38:04 -05002 'phosphor-ipmi-blobs',
3 'cpp',
4 version: '0.1',
5 meson_version: '>=1.1.1',
6 default_options: ['cpp_std=c++23', 'warning_level=3', 'werror=true'],
7)
William A. Kennington IIId963adb2021-06-15 18:24:00 -07008
Patrick Williamsb17504d2025-02-01 08:38:04 -05009ipmi_blob_dep = declare_dependency(include_directories: include_directories('.'))
William A. Kennington IIId963adb2021-06-15 18:24:00 -070010
Patrick Williamsb17504d2025-02-01 08:38:04 -050011install_headers('blobs-ipmid/blobs.hpp', subdir: 'blobs-ipmid')
William A. Kennington IIId5ed4092021-06-16 12:31:07 -070012
William A. Kennington IIId963adb2021-06-15 18:24:00 -070013import('pkgconfig').generate(
Patrick Williamsb17504d2025-02-01 08:38:04 -050014 name: 'phosphor-ipmi-blobs',
15 description: 'Phosphor Blob Transfer Interface',
16 version: meson.project_version(),
17)
William A. Kennington IIId963adb2021-06-15 18:24:00 -070018
Willy Tu83f99922022-06-22 14:59:07 -070019cpp = meson.get_compiler('cpp')
20
William A. Kennington IIId963adb2021-06-15 18:24:00 -070021phosphor_logging_dep = dependency('phosphor-logging')
Willy Tu83f99922022-06-22 14:59:07 -070022ipmid_dep = dependency('libipmid')
Jonathan Domancb80fa52023-07-24 10:22:59 -070023channellayer_dep = dependency('libchannellayer')
William A. Kennington IIId963adb2021-06-15 18:24:00 -070024
25blob_manager_pre = declare_dependency(
Patrick Williamsb17504d2025-02-01 08:38:04 -050026 dependencies: [
27 ipmi_blob_dep,
28 dependency('ipmiblob'),
29 ipmid_dep,
30 phosphor_logging_dep,
31 ],
32)
William A. Kennington IIId963adb2021-06-15 18:24:00 -070033
34blob_manager_lib = static_library(
Patrick Williamsb17504d2025-02-01 08:38:04 -050035 'blobmanager',
36 'fs.cpp',
37 'internal/sys.cpp',
38 'ipmi.cpp',
39 'manager.cpp',
40 'process.cpp',
41 'utils.cpp',
42 implicit_include_directories: false,
43 dependencies: blob_manager_pre,
44)
William A. Kennington IIId963adb2021-06-15 18:24:00 -070045
46blob_manager_dep = declare_dependency(
Patrick Williamsb17504d2025-02-01 08:38:04 -050047 link_with: blob_manager_lib,
48 dependencies: blob_manager_pre,
49)
William A. Kennington IIId963adb2021-06-15 18:24:00 -070050
51conf_data = configuration_data()
52conf_data.set_quoted(
Patrick Williamsb17504d2025-02-01 08:38:04 -050053 'BLOB_LIB_PATH',
54 get_option('prefix') / get_option('libdir') / 'blob-ipmid',
55)
56conf_h = configure_file(output: 'config.h', configuration: conf_data)
William A. Kennington IIId963adb2021-06-15 18:24:00 -070057
58shared_module(
Patrick Williamsb17504d2025-02-01 08:38:04 -050059 'blobmanager',
60 conf_h,
61 'main.cpp',
62 implicit_include_directories: false,
63 dependencies: [blob_manager_dep, ipmid_dep, channellayer_dep],
64 install: true,
65 install_dir: get_option('libdir') / 'ipmid-providers',
66)
William A. Kennington IIId963adb2021-06-15 18:24:00 -070067
68if get_option('examples')
Patrick Williamsb17504d2025-02-01 08:38:04 -050069 subdir('example')
William A. Kennington IIId963adb2021-06-15 18:24:00 -070070endif
71
Patrick Williams0ccc1982025-01-30 17:48:10 -050072if get_option('tests').allowed()
Patrick Williamsb17504d2025-02-01 08:38:04 -050073 subdir('test')
William A. Kennington IIId963adb2021-06-15 18:24:00 -070074endif