1*bde874e9SMatt Johnstonlibpldm_sources = files('control.c', 'responder.c', 'utils.c') 29c766792SAndrew Jeffery 348761c62SAndrew Jefferysubdir('dsp') 4c69081afSMatt Johnston 5c69081afSMatt Johnstonif get_option('transport') 69c766792SAndrew Jeffery subdir('requester') 7c1b66f42SRashmica Gupta subdir('transport') 8c69081afSMatt Johnstonendif 955e5e0a0SAndrew Jeffery 10fef24ed6SAndrew Jefferyif get_option('oem').contains('ibm') 1155e5e0a0SAndrew Jeffery subdir('oem/ibm') 129c766792SAndrew Jefferyendif 13a7989cd6SPavithra Barithaya 14fef24ed6SAndrew Jefferyif get_option('oem').contains('meta') 1522fad395SDelphine CC Chiu subdir('oem/meta') 1622fad395SDelphine CC Chiuendif 1722fad395SDelphine CC Chiu 188c2bfb14SMatt Johnstonsubdir('firmware_device') 198c2bfb14SMatt Johnston 20d9b70ba7SAndrew Jefferylibpldm_link_args = [] 21d9b70ba7SAndrew Jefferyforeach alias : libpldm_deprecated_aliases 22d9b70ba7SAndrew Jeffery libpldm_link_args += '-Wl,--defsym=@0@=@1@'.format(alias[0], alias[1]) 23d9b70ba7SAndrew Jefferyendforeach 24d9b70ba7SAndrew Jeffery 25a7989cd6SPavithra Barithayalibpldm = library( 26a7989cd6SPavithra Barithaya 'pldm', 27a7989cd6SPavithra Barithaya libpldm_sources, 28a7989cd6SPavithra Barithaya implicit_include_directories: false, 29e984a461SAndrew Jeffery include_directories: [libpldm_include_dir, include_directories('.')], 30d9b70ba7SAndrew Jeffery link_args: libpldm_link_args, 31a7989cd6SPavithra Barithaya version: meson.project_version(), 32a7989cd6SPavithra Barithaya gnu_symbol_visibility: 'hidden', 33e984a461SAndrew Jeffery install: true, 34a7989cd6SPavithra Barithaya) 35a7989cd6SPavithra Barithaya 36a7989cd6SPavithra Barithayalibpldm_dep = declare_dependency( 37a7989cd6SPavithra Barithaya include_directories: libpldm_include_dir, 38e984a461SAndrew Jeffery link_with: libpldm, 39e984a461SAndrew Jeffery) 40a7989cd6SPavithra Barithaya 41a7989cd6SPavithra Barithayaimport('pkgconfig').generate( 42a7989cd6SPavithra Barithaya name: 'libpldm', 43a7989cd6SPavithra Barithaya description: 'PLDM protocol encode/decode C lib', 44a7989cd6SPavithra Barithaya version: meson.project_version(), 45e984a461SAndrew Jeffery libraries: libpldm, 46e984a461SAndrew Jeffery) 475664cf20SAndrew Jeffery 4865c64099SAndrew Jefferyif get_option('tests') 495664cf20SAndrew Jeffery c_suite = meson.get_compiler('c').get_id() 505664cf20SAndrew Jeffery cpp_suite = meson.get_compiler('cpp').get_id() 515664cf20SAndrew Jeffery 5265c64099SAndrew Jeffery if get_option('abi-compliance-check') and c_suite == cpp_suite and c_suite == 'gcc' 535664cf20SAndrew Jeffery host = host_machine.cpu_family() 54e984a461SAndrew Jeffery baseline_dump = meson.project_source_root() / 'abi' / host / '@0@.dump'.format( 55e984a461SAndrew Jeffery c_suite, 56e984a461SAndrew Jeffery ) 575664cf20SAndrew Jeffery 58e984a461SAndrew Jeffery abi_dumper = find_program( 59e984a461SAndrew Jeffery 'abi-dumper', 605664cf20SAndrew Jeffery native: true, 61e984a461SAndrew Jeffery required: get_option('abi-compliance-check'), 62e984a461SAndrew Jeffery ) 63e984a461SAndrew Jeffery abi_compliance_checker = find_program( 64e984a461SAndrew Jeffery 'abi-compliance-checker', 655664cf20SAndrew Jeffery native: true, 66e984a461SAndrew Jeffery required: get_option('abi-compliance-check'), 67e984a461SAndrew Jeffery ) 685664cf20SAndrew Jeffery 695664cf20SAndrew Jeffery test_abi_compliance = abi_dumper.found() and \ 705664cf20SAndrew Jeffery abi_compliance_checker.found() and \ 715664cf20SAndrew Jeffery import('fs').is_file(baseline_dump) 725664cf20SAndrew Jeffery 735664cf20SAndrew Jeffery if test_abi_compliance 74e984a461SAndrew Jeffery current_dump = custom_target( 75e984a461SAndrew Jeffery 'abi-dump', 765664cf20SAndrew Jeffery input: libpldm, 775664cf20SAndrew Jeffery output: 'current.dump', 78e984a461SAndrew Jeffery command: [ 79e984a461SAndrew Jeffery abi_dumper, 801077d2d1SAndrew Jeffery '-mixed-headers', 811077d2d1SAndrew Jeffery '-include-paths', 821077d2d1SAndrew Jeffery meson.project_source_root() / 'src', 835664cf20SAndrew Jeffery '-public-headers', 845664cf20SAndrew Jeffery meson.project_source_root() / 'include', 8575eea49eSAndrew Jeffery '-sort', 865664cf20SAndrew Jeffery '@INPUT@', 875664cf20SAndrew Jeffery '-o', 885664cf20SAndrew Jeffery '@OUTPUT@', 895664cf20SAndrew Jeffery '-lver', 90e984a461SAndrew Jeffery meson.project_version(), 91e984a461SAndrew Jeffery ], 92e984a461SAndrew Jeffery ) 93e984a461SAndrew Jeffery abi_compliance = custom_target( 94e984a461SAndrew Jeffery 'abi-compliance', 955664cf20SAndrew Jeffery input: [baseline_dump, current_dump], 965664cf20SAndrew Jeffery output: 'abi-compliance', 97e984a461SAndrew Jeffery command: [ 98e984a461SAndrew Jeffery abi_compliance_checker, 995664cf20SAndrew Jeffery '-l', 1005664cf20SAndrew Jeffery meson.project_name(), 1015664cf20SAndrew Jeffery '-old', 1025664cf20SAndrew Jeffery '@INPUT0@', 1035664cf20SAndrew Jeffery '-new', 104e984a461SAndrew Jeffery '@INPUT1@', 105e984a461SAndrew Jeffery ], 106e984a461SAndrew Jeffery build_by_default: true, 107e984a461SAndrew Jeffery ) 1085664cf20SAndrew Jeffery endif 1095664cf20SAndrew Jeffery endif 1105664cf20SAndrew Jefferyendif 111