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 67install_subdir('instance-db', 68 install_mode: 'r--r--r--', 69 install_dir: get_option('datadir') / meson.project_name()) 70