1*07f94f02SGeorge Liugtest_dep = dependency('gtest', main: true, disabler: true, required: false)
2*07f94f02SGeorge Liugmock_dep = dependency('gmock', disabler: true, required: false)
3*07f94f02SGeorge Liuif not gtest_dep.found() or not gmock_dep.found()
4*07f94f02SGeorge Liu    gtest_proj = import('cmake').subproject('googletest', required: false)
5*07f94f02SGeorge Liu    if gtest_proj.found()
6*07f94f02SGeorge Liu        gtest_dep = declare_dependency(
7*07f94f02SGeorge Liu            dependencies: [
8*07f94f02SGeorge Liu                dependency('threads'),
9*07f94f02SGeorge Liu                gtest_proj.dependency('gtest'),
10*07f94f02SGeorge Liu                gtest_proj.dependency('gtest_main'),
11*07f94f02SGeorge Liu            ]
12*07f94f02SGeorge Liu        )
13*07f94f02SGeorge Liu        gmock_dep = gtest_proj.dependency('gmock')
14*07f94f02SGeorge Liu    else
15*07f94f02SGeorge Liu        assert(
16*07f94f02SGeorge Liu            not get_option('tests').enabled(),
17*07f94f02SGeorge Liu            'Googletest is required if tests are enabled'
18*07f94f02SGeorge Liu        )
19*07f94f02SGeorge Liu    endif
20*07f94f02SGeorge Liuendif
21*07f94f02SGeorge Liu
22*07f94f02SGeorge Liutest_sources = [
23*07f94f02SGeorge Liu    generated_cpp,
24*07f94f02SGeorge Liu    gen_serialization_hpp,
25*07f94f02SGeorge Liu    '../association_manager.cpp',
26*07f94f02SGeorge Liu    '../manager.cpp',
27*07f94f02SGeorge Liu    '../functor.cpp',
28*07f94f02SGeorge Liu    '../errors.cpp',
29*07f94f02SGeorge Liu]
30*07f94f02SGeorge Liu
31*07f94f02SGeorge Liutests = [
32*07f94f02SGeorge Liu    'associations_test.cpp',
33*07f94f02SGeorge Liu    'interface_ops_test.cpp',
34*07f94f02SGeorge Liu    'manager_test.cpp',
35*07f94f02SGeorge Liu    'serialize_test.cpp',
36*07f94f02SGeorge Liu    'types_test.cpp',
37*07f94f02SGeorge Liu    'utils_test.cpp',
38*07f94f02SGeorge Liu]
39*07f94f02SGeorge Liu
40*07f94f02SGeorge Liutest_deps = [
41*07f94f02SGeorge Liu    sdbusplus_dep,
42*07f94f02SGeorge Liu    phosphor_dbus_interfaces_dep,
43*07f94f02SGeorge Liu    phosphor_logging_dep,
44*07f94f02SGeorge Liu]
45*07f94f02SGeorge Liu
46*07f94f02SGeorge Liuforeach t : tests
47*07f94f02SGeorge Liu    test(t, executable(t.underscorify(), t,
48*07f94f02SGeorge Liu                     test_sources,
49*07f94f02SGeorge Liu                     include_directories: ['..'],
50*07f94f02SGeorge Liu                     dependencies: [
51*07f94f02SGeorge Liu                         gtest_dep,
52*07f94f02SGeorge Liu                         gmock_dep,
53*07f94f02SGeorge Liu                         test_deps,
54*07f94f02SGeorge Liu                         ]),
55*07f94f02SGeorge Liu        workdir: meson.current_source_dir())
56*07f94f02SGeorge Liuendforeach
57