1if get_option('oe-sdk').enabled() 2 # Setup OE SYSROOT 3 OECORE_TARGET_SYSROOT = run_command('sh', '-c', 'echo $OECORE_TARGET_SYSROOT').stdout().strip() 4 if OECORE_TARGET_SYSROOT == '' 5 error('Unable to get $OECORE_TARGET_SYSROOT, check your environment.') 6 endif 7 message('OE_SYSROOT: ' + OECORE_TARGET_SYSROOT) 8 rpath = ':'.join([OECORE_TARGET_SYSROOT + '/lib', OECORE_TARGET_SYSROOT + '/usr/lib']) 9 ld_so = run_command('sh', '-c', 'find ' + OECORE_TARGET_SYSROOT + '/lib/ld-*.so | sort -r -n | head -n1').stdout().strip() 10 dynamic_linker = ['-Wl,-dynamic-linker,' + ld_so] 11else 12 dynamic_linker = [] 13endif 14 15gtest = dependency('gtest', main: true, disabler: true, required: false) 16gmock = dependency('gmock', disabler: true, required: false) 17if not gtest.found() or not gmock.found() 18 gtest_proj = import('cmake').subproject('googletest', required: false) 19 if gtest_proj.found() 20 gtest = declare_dependency( 21 dependencies: [ 22 dependency('threads'), 23 gtest_proj.dependency('gtest'), 24 gtest_proj.dependency('gtest_main'), 25 ] 26 ) 27 gmock = gtest_proj.dependency('gmock') 28 else 29 assert( 30 not get_option('tests').enabled(), 31 'Googletest is required if tests are enabled' 32 ) 33 endif 34endif 35 36pldmd = declare_dependency( 37 sources: [ 38 '../pldmd/instance_id.cpp', 39 '../pldmd/dbus_impl_requester.cpp', 40 '../host-bmc/host_pdr_handler.cpp', 41 '../host-bmc/dbus_to_host_effecters.cpp']) 42 43tests = [ 44 'libpldmresponder_base_test', 45 'libpldmresponder_bios_test', 46 'libpldmresponder_bios_attribute_test', 47 'libpldmresponder_bios_string_attribute_test', 48 'libpldmresponder_bios_config_test', 49 'libpldmresponder_bios_integer_attribute_test', 50 'libpldmresponder_bios_enum_attribute_test', 51 'libpldmresponder_pdr_effecter_test', 52 'libpldmresponder_pdr_sensor_test', 53 'libpldmresponder_bios_table_test', 54 'libpldmresponder_platform_test', 55 'pldmd_instanceid_test', 56 'pldmd_registration_test', 57 'pldm_utils_test', 58 'libpldmresponder_fru_test', 59 'libpldmresponder_dbus_to_host_effecter_test', 60] 61 62if get_option('oem-ibm').enabled() 63 tests += [ 64 '../oem/ibm/test/libpldmresponder_fileio_test', 65 '../oem/ibm/test/libpldmresponder_oem_platform_test' 66 ] 67endif 68 69foreach t : tests 70 test(t, executable(t.underscorify(), t + '.cpp', 71 implicit_include_directories: false, 72 link_args: dynamic_linker, 73 build_rpath: get_option('oe-sdk').enabled() ? rpath : '', 74 dependencies: [ 75 libpldm_dep, 76 libpldmresponder, 77 libpldmutils, 78 gtest, 79 gmock, 80 nlohmann_json, 81 pldmd, 82 phosphor_dbus_interfaces, 83 sdeventplus, 84 sdbusplus]), 85 workdir: meson.current_source_dir()) 86endforeach 87