blob: f112e139c67539ccea2b52c977b22400888a0472 [file] [log] [blame]
kasunath7ffd30a2022-05-10 18:11:34 -07001gtest = dependency('gtest', main: true, disabler: true, required: get_option('tests'))
2gmock = dependency('gmock', disabler: true, required: get_option('tests'))
3
4if not gtest.found() or not gmock.found()
5 gtest_proj = import('cmake').subproject('googletest', required: false)
6 if gtest_proj.found()
7 gtest = declare_dependency(
8 dependencies: [
9 gtest_proj.dependency('gtest'),
10 gtest_proj.dependency('gtest_main'),
11 ])
12 gmock = gtest_proj.dependency('gmock')
13 else
Patrick Williams6eb945f2023-11-29 06:45:26 -060014 assert(not get_option('tests').allowed(), 'Googletest is required')
kasunath7ffd30a2022-05-10 18:11:34 -070015 endif
16endif
17
18gtests = [
kasunathe8946af2022-05-23 12:32:09 -070019 'bej_decoder',
kasunath0aa36d82022-11-23 14:24:15 -080020 'bej_common',
kasunathd073aa12022-05-12 16:08:49 -070021 'bej_dictionary',
kasunath2ebe82f2023-01-31 13:59:22 -080022 'bej_tree',
Nikhil Namjoshida6e5572023-03-13 10:52:53 -070023 'bej_encoder'
kasunath7ffd30a2022-05-10 18:11:34 -070024]
Nikhil Namjoshida6e5572023-03-13 10:52:53 -070025
Konstantin Aladyshev2bc745a2024-04-01 17:13:40 +030026nlohmann_json_dep = dependency('nlohmann_json', include_type: 'system')
27
Nikhil Namjoshida6e5572023-03-13 10:52:53 -070028libbej_test_incs = include_directories('include')
kasunath7ffd30a2022-05-10 18:11:34 -070029foreach t : gtests
30 test(t, executable(t.underscorify(), t + '_test.cpp',
31 build_by_default: false,
32 implicit_include_directories: false,
Nikhil Namjoshida6e5572023-03-13 10:52:53 -070033 include_directories: libbej_test_incs,
Konstantin Aladyshev2bc745a2024-04-01 17:13:40 +030034 dependencies: [libbej, gtest, gmock, nlohmann_json_dep]))
kasunath7ffd30a2022-05-10 18:11:34 -070035endforeach