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