1project(
2  'phosphor-ipmi-blobs',
3  'cpp',
4  version: '0.1',
5  meson_version: '>=0.57.0',
6  default_options: [
7    'cpp_std=c++20',
8    'warning_level=3',
9    'werror=true',
10  ])
11
12ipmi_blob_dep = declare_dependency(
13  include_directories: include_directories('.'))
14
15install_headers(
16  'blobs-ipmid/blobs.hpp',
17  subdir: 'blobs-ipmid')
18
19import('pkgconfig').generate(
20  name: 'phosphor-ipmi-blobs',
21  description: 'Phosphor Blob Transfer Interface',
22  version: meson.project_version())
23
24phosphor_logging_dep = dependency('phosphor-logging')
25
26blob_manager_pre = declare_dependency(
27  dependencies: [
28    ipmi_blob_dep,
29    dependency('ipmiblob'),
30    phosphor_logging_dep,
31  ])
32
33blob_manager_lib = static_library(
34  'blobmanager',
35  'fs.cpp',
36  'internal/sys.cpp',
37  'ipmi.cpp',
38  'manager.cpp',
39  'process.cpp',
40  'utils.cpp',
41  implicit_include_directories: false,
42  dependencies: blob_manager_pre)
43
44blob_manager_dep = declare_dependency(
45  link_with: blob_manager_lib,
46  dependencies: blob_manager_pre)
47
48conf_data = configuration_data()
49conf_data.set_quoted(
50  'BLOB_LIB_PATH',
51  get_option('prefix') / get_option('libdir') / 'blob-ipmid')
52conf_h = configure_file(
53  output: 'config.h',
54  configuration: conf_data)
55
56shared_module(
57  'blobmanager',
58  conf_h,
59  'main.cpp',
60  implicit_include_directories: false,
61  dependencies: [
62    blob_manager_dep,
63    dependency('libipmid'),
64  ],
65  install: true,
66  install_dir: get_option('libdir') / 'ipmid-providers')
67
68if get_option('examples')
69  subdir('example')
70endif
71
72if not get_option('tests').disabled()
73  subdir('test')
74endif
75