create fallback gtest subproject dependency
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
Change-Id: I6b0ce32242a0a74b56f4a163cfb3a1e15fe8a7ee
diff --git a/.gitignore b/.gitignore
index 471453d..8d2357a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
*.sw*
/build
+/subprojects/googletest
/subprojects/libhei
diff --git a/meson.build b/meson.build
index 9837e17..75d56df 100644
--- a/meson.build
+++ b/meson.build
@@ -1,6 +1,6 @@
# See README.md for details.
project('openpower-hw-diags', 'cpp',
- version: '0.1', meson_version: '>=0.50.0',
+ version: '0.1', meson_version: '>=0.51.0',
default_options: [
'warning_level=3',
'werror=true',
diff --git a/subprojects/googletest.wrap b/subprojects/googletest.wrap
new file mode 100644
index 0000000..56da9ef
--- /dev/null
+++ b/subprojects/googletest.wrap
@@ -0,0 +1,3 @@
+[wrap-git]
+url = https://github.com/google/googletest
+revision = HEAD
diff --git a/test/meson.build b/test/meson.build
index dc374fb..730c19a 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,3 +1,25 @@
+# Get the gtest/gmock dependencies.
+gtest_dep = dependency('gtest', main: true, disabler: true, required: false)
+gmock_dep = dependency('gmock', disabler: true, required: false)
+if not gtest_dep.found() or not gmock_dep.found()
+ cmake = import('cmake')
+ gtest_proj = cmake.subproject('googletest',
+ required: false)
+ if gtest_proj.found()
+ gtest_dep = declare_dependency(
+ dependencies: [
+ dependency('threads'),
+ gtest_proj.dependency('gtest'),
+ gtest_proj.dependency('gtest_main'),
+ ]
+ )
+ gmock_dep = gtest_proj.dependency('gmock')
+ else
+ assert(not get_option('tests').enabled(),
+ 'Googletest is required if tests are enabled')
+ endif
+endif
+
test_arg = [
'-DTEST_TRACE',
]
@@ -15,14 +37,10 @@
'../analyzer/service_data.cpp',
)
-gtest = dependency('gtest', main : true, required : false, method : 'system')
-
-if gtest.found()
- foreach t : tests
- test(t, executable(t.underscorify(), [ t + '.cpp', analyzer_src ],
- link_with : [ util_lib ],
- dependencies : [ libhei_dep, gtest ],
- cpp_args : test_arg,
- include_directories : incdir))
- endforeach
-endif
+foreach t : tests
+ test(t, executable(t.underscorify(), [ t + '.cpp', analyzer_src ],
+ link_with : [ util_lib ],
+ dependencies : [ libhei_dep, gtest_dep ],
+ cpp_args : test_arg,
+ include_directories : incdir))
+endforeach