xref: /openbmc/libpldm/meson.build (revision c1b66f42)
1project('libpldm', ['c','cpp'],
2    default_options: [
3      'buildtype=debugoptimized',
4      'warning_level=3',
5      'werror=true',
6      'cpp_std=c++20',
7      'c_std=c17',
8      'tests=' + (meson.is_subproject() ? 'disabled' : 'enabled'),
9    ],
10    version: '0.2.0',
11    meson_version: '>=0.63.0',
12)
13
14add_project_arguments('-D_DEFAULT_SOURCE',language:['c'])
15
16libpldm_sources = files()
17subdir('src')
18
19libpldm_include_dir = ['include', 'src']
20libpldm_headers = files()
21libpldm_transport_headers = files()
22
23subdir('include/libpldm')
24
25libpldm = library(
26  'pldm',
27   libpldm_sources,
28   implicit_include_directories: false,
29   include_directories: libpldm_include_dir,
30   version: meson.project_version(),
31   install: true
32   )
33
34install_headers(
35  libpldm_headers,
36  subdir:'libpldm'
37  )
38
39install_headers(
40  libpldm_transport_headers,
41  subdir:'libpldm/transport'
42  )
43
44libpldm_dep = declare_dependency(
45  include_directories: libpldm_include_dir,
46  link_with: libpldm)
47
48import('pkgconfig').generate(
49  name: 'libpldm',
50  description: 'PLDM protocol encode/decode C lib',
51  version: meson.project_version(),
52  libraries: libpldm)
53
54compiler = meson.get_compiler('c')
55conf = configuration_data()
56if compiler.has_header('poll.h')
57  conf.set('PLDM_HAS_POLL', 1)
58endif
59configure_file(output: 'config.h',
60  configuration: conf
61)
62
63if get_option('tests').enabled()
64  subdir('tests')
65endif
66