1gtest_dep = dependency('gtest', main: true, disabler: true, required: false) 2gmock_dep = dependency('gmock', disabler: true, required: false) 3libgpiodcxx = dependency('libgpiodcxx', default_options: ['bindings=cxx']) 4if not gtest_dep.found() or not gmock_dep.found() 5 cmake = import('cmake') 6 gtest_opts = cmake.subproject_options() 7 gtest_opts.set_override_option('warning_level', '1') 8 gtest_opts.set_override_option('werror', 'false') 9 gtest_proj = cmake.subproject( 10 'googletest', 11 options: gtest_opts, 12 required: false, 13 ) 14 if gtest_proj.found() 15 gtest_dep = declare_dependency( 16 dependencies: [ 17 dependency('threads'), 18 gtest_proj.dependency('gtest'), 19 gtest_proj.dependency('gtest_main'), 20 ], 21 ) 22 gmock_dep = gtest_proj.dependency('gmock') 23 else 24 assert( 25 not get_option('tests').allowed(), 26 'Googletest is required if tests are enabled', 27 ) 28 endif 29endif 30 31parser_build_arguments = [] 32if get_option('ipz_ecc_check').allowed() 33 parser_build_arguments += ['-DIPZ_ECC_CHECK'] 34endif 35 36dependency_list = [gtest_dep, gmock_dep, sdbusplus, libgpiodcxx] 37 38configuration_inc = include_directories( 39 '..', 40 '../vpd-manager/include', 41 '../vpdecc', 42) 43 44test_sources = [ 45 '../vpd-manager/src/logger.cpp', 46 '../vpd-manager/src/ddimm_parser.cpp', 47 '../vpd-manager/src/parser.cpp', 48 '../vpd-manager/src/parser_factory.cpp', 49 '../vpd-manager/src/isdimm_parser.cpp', 50 '../vpd-manager/src/ipz_parser.cpp', 51 '../vpd-manager/src/keyword_vpd_parser.cpp', 52 '../vpd-manager/src/event_logger.cpp', 53 '../vpdecc/vpdecc.c', 54] 55 56tests = [ 57 'utest_utils.cpp', 58 'utest_keyword_parser.cpp', 59 'utest_ddimm_parser.cpp', 60 'utest_ipz_parser.cpp', 61 'utest_json_utility.cpp', 62] 63 64foreach test_file : tests 65 test( 66 test_file, 67 executable( 68 test_file.underscorify(), 69 test_file, 70 test_sources, 71 include_directories: configuration_inc, 72 dependencies: dependency_list, 73 cpp_args: parser_build_arguments, 74 ), 75 workdir: meson.current_source_dir(), 76 ) 77endforeach 78