[sw] Build googletest using meson

Vendoring googletest introduced a dependency on CMake, which has caused
issues, including #1484.

This commit removes the dependency on CMake by adding build rules for
googletest directly in meson.

This commit also reverts b94e3f8964ccea0a73811537a4c783fedec5270c, as
CMake is no longer needed.

Signed-off-by: Sam Elliott <selliott@lowrisc.org>
diff --git a/sw/vendor/meson.build b/sw/vendor/meson.build
index 1cb7cf1..b2912d9 100644
--- a/sw/vendor/meson.build
+++ b/sw/vendor/meson.build
@@ -9,3 +9,42 @@
   'eembc_coremark/core_state.c',
   'eembc_coremark/core_util.c',
 ])
+
+# googletest and googlemock build definitions
+#
+# The following is inspired by the meson configuration available in
+# https://github.com/mesonbuild/gtest/tree/1.10.0 (which is MIT
+# licensed).
+thread_dep = dependency('threads')
+sw_vendor_gtest_dir = 'google_googletest'
+
+sw_vendor_gtest_googletest_dir = sw_vendor_gtest_dir / 'googletest'
+sw_vendor_gtest_googletest_inc_dir = include_directories(
+  sw_vendor_gtest_googletest_dir / 'include',
+  sw_vendor_gtest_googletest_dir,
+  is_system: true,
+)
+sw_vendor_gtest_googletest_libsources = files(sw_vendor_gtest_googletest_dir / 'src/gtest-all.cc')
+
+sw_vendor_gtest_googlemock_dir = sw_vendor_gtest_dir / 'googlemock'
+sw_vendor_gtest_googlemock_inc_dir = include_directories(
+  sw_vendor_gtest_googlemock_dir / 'include',
+  sw_vendor_gtest_googlemock_dir,
+  is_system: true,
+)
+sw_vendor_gtest_googlemock_libsources = files(sw_vendor_gtest_googlemock_dir / 'src/gmock-all.cc')
+sw_vendor_gtest_googlemock_mainsources = files(sw_vendor_gtest_googlemock_dir / 'src/gmock_main.cc')
+
+sw_vendor_gtest = declare_dependency(
+  include_directories: [
+    sw_vendor_gtest_googletest_inc_dir,
+    sw_vendor_gtest_googlemock_inc_dir,
+  ],
+  sources: [
+    sw_vendor_gtest_googletest_libsources,
+    sw_vendor_gtest_googlemock_libsources,
+    sw_vendor_gtest_googlemock_mainsources,
+  ],
+  dependencies: thread_dep,
+)
+# End googletest and googlemock build definitions