diff --git a/Framework/API/test/CMakeLists.txt b/Framework/API/test/CMakeLists.txt
index 4150411c5c65ca7fd5e865481e70479a23cfe85e..c96fba123d1a97394171bc4ec7ce169eeb598548 100644
--- a/Framework/API/test/CMakeLists.txt
+++ b/Framework/API/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   include_directories(../../TestHelpers/inc ../../Nexus/inc
                       ${HDF5_INCLUDE_DIRS})
@@ -32,8 +31,8 @@ if(CXXTEST_FOUND)
                         ${JSONCPP_LIBRARIES}
                         ${NEXUS_LIBRARIES}
                         ${MUPARSER_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   add_dependencies(FrameworkTests APITest)
   # Test data
diff --git a/Framework/Algorithms/test/CMakeLists.txt b/Framework/Algorithms/test/CMakeLists.txt
index 602111597d52b6c8454affe4e3b82ad8b078c19a..a1eec78bb41469c05ae0d56eaecebea599b3eedb 100644
--- a/Framework/Algorithms/test/CMakeLists.txt
+++ b/Framework/Algorithms/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
   check_include_files(stdint.h stdint)
   if(stdint)
     add_definitions(-DHAVE_STDINT_H)
@@ -60,8 +59,8 @@ if(CXXTEST_FOUND)
                         DataHandling
                         Nexus
                         ${BCRYPT}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
   add_dependencies(AlgorithmsTest Crystal CurveFitting)
   add_dependencies(FrameworkTests AlgorithmsTest)
   # Test data
diff --git a/Framework/Beamline/test/CMakeLists.txt b/Framework/Beamline/test/CMakeLists.txt
index 46943b28dbc4d505aff25f5798fb31d19dd0f4de..88effd3fb0179ef19a536ceca5c6a9e6f9632778 100644
--- a/Framework/Beamline/test/CMakeLists.txt
+++ b/Framework/Beamline/test/CMakeLists.txt
@@ -1,8 +1,6 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR}
                       ../../TestHelpers/inc)
 
   cxxtest_add_test(BeamlineTest ${TEST_FILES} ${GMOCK_TEST_FILES})
@@ -12,8 +10,8 @@ if(CXXTEST_FOUND)
                         ${TCMALLOC_LIBRARIES_LINKTIME}
                         Beamline
                         ${Boost_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   add_dependencies(FrameworkTests BeamlineTest)
   # Add to the 'FrameworkTests' group in VS
diff --git a/Framework/Crystal/test/CMakeLists.txt b/Framework/Crystal/test/CMakeLists.txt
index b0f4b4a61d473900a8115af36030a0d854a0aa3d..2957d43e2ec2494f569b2e948ca1777e99f8f855 100644
--- a/Framework/Crystal/test/CMakeLists.txt
+++ b/Framework/Crystal/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   include_directories(../../DataHandling/inc ../../TestHelpers/inc)
   # This variable is used within the cxxtest_add_test macro to build these
@@ -23,8 +22,8 @@ if(CXXTEST_FOUND)
                         DataHandling
                         MDAlgorithms
                         Nexus
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
   add_dependencies(CrystalTest Algorithms CurveFitting)
   add_dependencies(FrameworkTests CrystalTest)
   # Test data
diff --git a/Framework/CurveFitting/test/CMakeLists.txt b/Framework/CurveFitting/test/CMakeLists.txt
index d4e74d286b179d7002e71b387186697650d1426f..7a8562a2c2e996b216d4643649f68c567f66a7c2 100644
--- a/Framework/CurveFitting/test/CMakeLists.txt
+++ b/Framework/CurveFitting/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   include_directories(../../DataHandling/inc ../../TestHelpers/inc)
   # This variable is used within the cxxtest_add_test macro to build these
@@ -24,8 +23,8 @@ if(CXXTEST_FOUND)
                         CurveFitting
                         DataHandling
                         ${GSL_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
   add_dependencies(CurveFittingTest Algorithms)
   add_dependencies(FrameworkTests CurveFittingTest)
   # Test data
diff --git a/Framework/DataObjects/test/CMakeLists.txt b/Framework/DataObjects/test/CMakeLists.txt
index 53b945c2313481daeba9ea42413525b9237f8755..d68c2134650c827d661e8eb43342e26cff600368 100644
--- a/Framework/DataObjects/test/CMakeLists.txt
+++ b/Framework/DataObjects/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   include_directories(../../TestHelpers/inc)
   # This variable is used within the cxxtest_add_test macro to build this helper
@@ -28,8 +27,8 @@ if(CXXTEST_FOUND)
                         DataObjects
                         ${NEXUS_LIBRARIES}
                         ${JSONCPP_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
   # Specify implicit dependency, but don't link to it
   add_dependencies(FrameworkTests DataObjectsTest)
   # Add to the 'FrameworkTests' group in VS
diff --git a/Framework/Geometry/test/CMakeLists.txt b/Framework/Geometry/test/CMakeLists.txt
index 9c2f5e681b2b6000ccd073e693931904bb946389..fea5b6993217f8bc08a368e66862ad7c9ba8bdb8 100644
--- a/Framework/Geometry/test/CMakeLists.txt
+++ b/Framework/Geometry/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   # This is required to pick up ComponentCreationHelper, which is the only
   # TestHelpers class that may be used by Geometry tests (as it does not depend
@@ -30,8 +29,8 @@ if(CXXTEST_FOUND)
                         ${GSL_LIBRARIES}
                         ${Boost_LIBRARIES}
                         ${POCO_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   add_dependencies(FrameworkTests GeometryTest)
   # Add to the 'FrameworkTests' group in VS
diff --git a/Framework/HistogramData/test/CMakeLists.txt b/Framework/HistogramData/test/CMakeLists.txt
index 9958761e00d2b1493d588c6f4aa10f6f99b29bdc..3f91b79d8e41eb5354e0e03b7a9e65cbff363126 100644
--- a/Framework/HistogramData/test/CMakeLists.txt
+++ b/Framework/HistogramData/test/CMakeLists.txt
@@ -1,8 +1,6 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR}
                       ../../TestHelpers/inc)
 
   cxxtest_add_test(HistogramDataTest ${TEST_FILES} ${GMOCK_TEST_FILES})
@@ -13,8 +11,8 @@ if(CXXTEST_FOUND)
                         ${TCMALLOC_LIBRARIES_LINKTIME}
                         HistogramData
                         ${Boost_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   add_dependencies(FrameworkTests HistogramDataTest)
   # Add to the 'FrameworkTests' group in VS
diff --git a/Framework/Indexing/test/CMakeLists.txt b/Framework/Indexing/test/CMakeLists.txt
index 0a532c7583c9f80649763b534078b54b89385218..08c013a3d01c064fbb74bed71d9ee651b5ed8e97 100644
--- a/Framework/Indexing/test/CMakeLists.txt
+++ b/Framework/Indexing/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
   include_directories(../../TestHelpers/inc)
   # This variable is used within the cxxtest_add_test macro to build these
   # helper classes into the test executable. It will go out of scope at the end
@@ -16,8 +15,8 @@ if(CXXTEST_FOUND)
                         ${MANTIDLIBS}
                         Indexing
                         Parallel
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   add_dependencies(FrameworkTests IndexingTest)
   # Add to the 'FrameworkTests' group in VS
diff --git a/Framework/Kernel/CMakeLists.txt b/Framework/Kernel/CMakeLists.txt
index bc345c68048063e6ceb9330c16d0f7f8674ae2c4..f460253f9f617270a763004300f0d2e1acdacad1 100644
--- a/Framework/Kernel/CMakeLists.txt
+++ b/Framework/Kernel/CMakeLists.txt
@@ -491,7 +491,7 @@ target_include_directories(Kernel SYSTEM
                            PUBLIC ${Boost_INCLUDE_DIRS} ${POCO_INCLUDE_DIRS}
                                   ${JSONCPP_INCLUDE_DIR}
                            PRIVATE ${NEXUS_INCLUDE_DIR} ${GSL_INCLUDE_DIR}
-                                   ${OPENSSL_INCLUDE_DIR} ${SPAN_INCLUDE_DIR})
+                                   ${OPENSSL_INCLUDE_DIR})
 
 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
   set_target_properties(Kernel PROPERTIES INSTALL_RPATH "@loader_path/../MacOS;@loader_path/../Frameworks")
@@ -519,7 +519,9 @@ target_link_libraries(Kernel
                       ${TCMALLOC_LIBRARIES_LINKTIME}
                       ${GSL_LIBRARIES}
                       ${MANTIDLIBS}
-                      ${NETWORK_LIBRARIES})
+                      ${NETWORK_LIBRARIES}
+                      span
+                      )
 if(WIN32)
   target_link_libraries(Kernel LINK_PRIVATE Psapi.lib) # For memory usage
                                                        # queries
diff --git a/Framework/Kernel/test/CMakeLists.txt b/Framework/Kernel/test/CMakeLists.txt
index a01fe11e3e55741ab95e2ce0216cda730f57198d..639691b4e98b9aa4e529667f5148c138de428b90 100644
--- a/Framework/Kernel/test/CMakeLists.txt
+++ b/Framework/Kernel/test/CMakeLists.txt
@@ -11,8 +11,6 @@ if(CXXTEST_FOUND)
   cxxtest_add_test(KernelTest ${TEST_FILES})
   target_include_directories(KernelTest SYSTEM PRIVATE
                              ${CXXTEST_INCLUDE_DIR}
-                             ${GMOCK_INCLUDE_DIR}
-                             ${GTEST_INCLUDE_DIR}
                              ../../TestHelpers/inc)
   target_link_libraries(KernelTest
                         PRIVATE
@@ -22,8 +20,7 @@ if(CXXTEST_FOUND)
                         ${NEXUS_LIBRARIES}
                         ${Boost_LIBRARIES}
                         ${POCO_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES}
+                        gmock
                         ${JSONCPP_LIBRARIES}
                         ${TBB_LIBRARIES}
                         ${TBB_MALLOC_LIBRARIES})
diff --git a/Framework/LiveData/test/CMakeLists.txt b/Framework/LiveData/test/CMakeLists.txt
index e39adb5f86dc29f1e1e96b61fcb76a9b303780b8..128844df9c65ce1c770d2c0762b826b7fcd38497 100644
--- a/Framework/LiveData/test/CMakeLists.txt
+++ b/Framework/LiveData/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   include_directories(../../TestHelpers/inc)
   # This variable is used within the cxxtest_add_test macro to build this helper
@@ -24,7 +23,7 @@ if(CXXTEST_FOUND)
                         ${TCMALLOC_LIBRARIES_LINKTIME}
                         ${MANTIDLIBS}
                         LiveData
-                        ${GMOCK_LIBRARIES})
+                        gmock)
   target_include_directories(LiveDataTest PRIVATE ../src/)
   add_dependencies(LiveDataTest DataHandling Algorithms MDAlgorithms)
   add_dependencies(FrameworkTests LiveDataTest)
diff --git a/Framework/MDAlgorithms/test/CMakeLists.txt b/Framework/MDAlgorithms/test/CMakeLists.txt
index f5a433c4e90e71d26218cbcda3939f74156fc9b8..9240689a359f95cf5cc6416bd9e740ae2d6098d9 100644
--- a/Framework/MDAlgorithms/test/CMakeLists.txt
+++ b/Framework/MDAlgorithms/test/CMakeLists.txt
@@ -1,8 +1,6 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR}
                       ${HDF5_INCLUDE_DIRS})
 
   include_directories(../../TestHelpers/inc ../../DataHandling/inc
@@ -31,8 +29,7 @@ if(CXXTEST_FOUND)
                         MDAlgorithms
                         Nexus
                         ${MUPARSER_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES}
+                        gmock
                         ${NEXUS_LIBRARIES}
                         ${HDF5_LIBRARIES})
 
diff --git a/Framework/Muon/test/CMakeLists.txt b/Framework/Muon/test/CMakeLists.txt
index ba644f61a1ae1573c466a69694c6e4aa9eb39937..6c36379da0c8a3755050dc4d685b9b550a76d8ba 100644
--- a/Framework/Muon/test/CMakeLists.txt
+++ b/Framework/Muon/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
   check_include_files(stdint.h stdint)
   if(stdint)
     add_definitions(-DHAVE_STDINT_H)
@@ -40,8 +39,8 @@ if(CXXTEST_FOUND)
                         DataHandling
                         Muon
                         Nexus
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
   add_dependencies(MuonTest Crystal CurveFitting)
   add_dependencies(FrameworkTests MuonTest)
   # Test data
diff --git a/Framework/NexusGeometry/test/CMakeLists.txt b/Framework/NexusGeometry/test/CMakeLists.txt
index 573d6ccc0d9b8e03557af290fe5386f076466fa6..eaa05475724fdd563c8bcf12bf8580fd4d3468a9 100644
--- a/Framework/NexusGeometry/test/CMakeLists.txt
+++ b/Framework/NexusGeometry/test/CMakeLists.txt
@@ -1,8 +1,6 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR}
                       ${Boost_INCLUDE_DIRS}
                       ../../TestHelpers/inc)
 
@@ -28,7 +26,7 @@ if(CXXTEST_FOUND)
                         ${NEXUS_LIBRARIES}
                         ${HDF5_LIBRARIES}
                         ${HDF5_HL_LIBRARIES}
-                        ${GMOCK_LIBRARIES})
+                        gmock)
   add_dependencies(NexusGeometryTest Geometry)
   add_dependencies(FrameworkTests NexusGeometryTest)
   add_dependencies(NexusGeometryTest StandardTestData)
diff --git a/Framework/Parallel/test/CMakeLists.txt b/Framework/Parallel/test/CMakeLists.txt
index d4801afec52fa63f1bfcb61b7fcfa0794fd4f9eb..2487ba6f254133acb5c54478bc989efd01de37da 100644
--- a/Framework/Parallel/test/CMakeLists.txt
+++ b/Framework/Parallel/test/CMakeLists.txt
@@ -1,8 +1,6 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR}
                       ../../TestHelpers/inc)
 
   # This variable is used within the cxxtest_add_test macro to build these
@@ -17,8 +15,7 @@ if(CXXTEST_FOUND)
                         ${TCMALLOC_LIBRARIES_LINKTIME}
                         ${MANTIDLIBS}
                         Parallel
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES}
+                        gmock
                         ${HDF5_LIBRARIES})
 
   add_dependencies(FrameworkTests ParallelTest)
diff --git a/Framework/RemoteAlgorithms/test/CMakeLists.txt b/Framework/RemoteAlgorithms/test/CMakeLists.txt
index bf48528c0e4f432bb18823439e804e8f39045286..22512720dbdb50499b92ad946eb435298c91cb9b 100644
--- a/Framework/RemoteAlgorithms/test/CMakeLists.txt
+++ b/Framework/RemoteAlgorithms/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   cxxtest_add_test(RemoteAlgorithmsTest ${TEST_FILES})
   target_link_libraries(RemoteAlgorithmsTest
@@ -14,8 +13,8 @@ if(CXXTEST_FOUND)
                         RemoteAlgorithms
                         ${Boost_LIBRARIES}
                         ${POCO_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
   add_dependencies(FrameworkTests RemoteAlgorithmsTest)
   # Test data. Not using any for now. Remember to uncomment if data is added for
   # these remote alg. tests add_dependencies ( RemoteAlgorithmsTest
diff --git a/Framework/RemoteJobManagers/test/CMakeLists.txt b/Framework/RemoteJobManagers/test/CMakeLists.txt
index 390c3ad4f95c7536187e8bf3c2a6578c17936da4..af256fded4dafa333d00b8a384156f35359327c0 100644
--- a/Framework/RemoteJobManagers/test/CMakeLists.txt
+++ b/Framework/RemoteJobManagers/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   cxxtest_add_test(RemoteJobManagersTest ${TEST_FILES})
   target_link_libraries(RemoteJobManagersTest
@@ -14,8 +13,8 @@ if(CXXTEST_FOUND)
                         RemoteJobManagers
                         ${Boost_LIBRARIES}
                         ${POCO_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
   add_dependencies(FrameworkTests RemoteJobManagersTest)
   # Test data. Not using any for now. Remember to uncomment if data is added for
   # these remote job managers add_dependencies ( RemoteJobManagersTest
diff --git a/Framework/SINQ/test/CMakeLists.txt b/Framework/SINQ/test/CMakeLists.txt
index 0f5edac4af8c6f683cb6977bc5c1fe39444c83a5..d755d9e8f56257b43672ca6c1c486181bdf1d129 100644
--- a/Framework/SINQ/test/CMakeLists.txt
+++ b/Framework/SINQ/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   include_directories(../../CurveFitting/inc
                       ../../MDAlgorithms/inc
@@ -26,8 +25,8 @@ if(CXXTEST_FOUND)
                         SINQ
                         CurveFitting
                         ${MANTIDLIBS}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   # Test data
   add_dependencies(PSISINQTest StandardTestData)
diff --git a/Framework/ScriptRepository/test/CMakeLists.txt b/Framework/ScriptRepository/test/CMakeLists.txt
index 8e0c2854a8a366e0075495f7ffdeaffb14d238b1..9872dcb61651de3742ed183e1f861e18f479b694 100644
--- a/Framework/ScriptRepository/test/CMakeLists.txt
+++ b/Framework/ScriptRepository/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   include_directories(../../ScriptRepository/inc)
   include_directories(../)
@@ -17,8 +16,8 @@ if(CXXTEST_FOUND)
                         ScriptRepository
                         ${Boost_LIBRARIES}
                         ${POCO_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   add_dependencies(FrameworkTests ScriptRepositoryTest)
   # Add to the 'FrameworkTests' group in VS
diff --git a/Framework/Types/test/CMakeLists.txt b/Framework/Types/test/CMakeLists.txt
index a9a094dae34f5d0b22f046af74d9b23fd86ef8c3..52250697865490e687fd831fdfdc359c3d0d9603 100644
--- a/Framework/Types/test/CMakeLists.txt
+++ b/Framework/Types/test/CMakeLists.txt
@@ -1,8 +1,7 @@
 if(CXXTEST_FOUND)
   include_directories(SYSTEM
                       ${CXXTEST_INCLUDE_DIR}
-                      ${GMOCK_INCLUDE_DIR}
-                      ${GTEST_INCLUDE_DIR})
+)
 
   cxxtest_add_test(TypesTest ${TEST_FILES} ${GMOCK_TEST_FILES})
   target_link_libraries(TypesTest
@@ -10,8 +9,8 @@ if(CXXTEST_FOUND)
                         ${TCMALLOC_LIBRARIES_LINKTIME}
                         Types
                         ${Boost_LIBRARIES}
-                        ${GMOCK_LIBRARIES}
-                        ${GTEST_LIBRARIES})
+                        gmock
+)
 
   add_dependencies(FrameworkTests TypesTest)
   # Add to the 'FrameworkTests' group in VS
diff --git a/buildconfig/CMake/CommonSetup.cmake b/buildconfig/CMake/CommonSetup.cmake
index 7b8afb4f47508b143d1f7a6d5e08371047a81b7d..efdba625bf9e7db8b87a1553793587f8ab577baf 100644
--- a/buildconfig/CMake/CommonSetup.cmake
+++ b/buildconfig/CMake/CommonSetup.cmake
@@ -19,6 +19,21 @@ if(NOT CMAKE_CONFIGURATION_TYPES)
   endif()
 endif()
 
+find_package(CxxTest)
+if(CXXTEST_FOUND)
+  add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
+  make_directory(${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Testing)
+  message(STATUS "Added target ('check') for unit tests")
+else()
+  message(STATUS "Could NOT find CxxTest - unit testing not available")
+endif()
+
+# Avoid the linker failing by including GTest before marking all libs as shared
+# and before we set our warning flags in GNUSetup
+include(GoogleTest)
+include(PyUnitTest)
+enable_testing()
+
 # We want shared libraries everywhere
 set(BUILD_SHARED_LIBS On)
 
@@ -371,19 +386,6 @@ include(PylintSetup)
 # Set up the unit tests target
 # ##############################################################################
 
-find_package(CxxTest)
-if(CXXTEST_FOUND)
-  add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
-  make_directory(${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/Testing)
-  message(STATUS "Added target ('check') for unit tests")
-else()
-  message(STATUS "Could NOT find CxxTest - unit testing not available")
-endif()
-
-include(GoogleTest)
-include(PyUnitTest)
-enable_testing()
-
 # GUI testing via Squish
 find_package(Squish)
 if(SQUISH_FOUND)
diff --git a/buildconfig/CMake/GoogleTest.cmake b/buildconfig/CMake/GoogleTest.cmake
index 39d8748fbb07c2957d6dadbc3d67cddf48b42d35..9b1a42d0e62239af2a6f66efbb9ea19f936ad5f6 100644
--- a/buildconfig/CMake/GoogleTest.cmake
+++ b/buildconfig/CMake/GoogleTest.cmake
@@ -1,74 +1,37 @@
 # Find the Google Mock headers and libraries
 # GMOCK_INCLUDE_DIR where to find gmock.h
-# GMOCK_FOUND If false, do not try to use Google Mock
 
 # Make gtest_version available everywhere
-set (gtest_version "1.8.0" CACHE INTERNAL "")
+set (gtest_version "1.10.0" CACHE INTERNAL "")
 
-option(USE_SYSTEM_GTEST "Use the system installed GTest - v${gtest_version}?" OFF)
+include(FetchContent)
 
-if(USE_SYSTEM_GTEST)
-  message(STATUS "Using system gtest - currently untested")
-  find_package(GTest ${gtest_version} EXACT REQUIRED)
-  find_package(GMock ${gtest_version} EXACT REQUIRED)
-else()
-  message(STATUS "Using gtest in ExternalProject")
+# Prevent overriding the parent project's compiler/linker
+# settings on Windows. Force overwrites previous cache value.
+set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
 
-  # Prevent overriding the parent project's compiler/linker
-  # settings on Windows. Force overwrites previous cache value.
-  set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
+FetchContent_Declare(
+  googletest
+  GIT_REPOSITORY https://github.com/google/googletest.git
+  GIT_TAG        release-1.10.0
+  GIT_SHALLOW    TRUE
+)
 
-  # Download and unpack googletest at configure time
-  configure_file(${CMAKE_SOURCE_DIR}/buildconfig/CMake/GoogleTest.in
-                 ${CMAKE_BINARY_DIR}/googletest-download/CMakeLists.txt @ONLY)
-  execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION} .
-                  RESULT_VARIABLE result
-                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
-  if(result)
-    message(FATAL_ERROR "CMake step for googletest failed: ${result}")
-  endif()
-  execute_process(COMMAND ${CMAKE_COMMAND} --build .
-                  RESULT_VARIABLE result
-                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/googletest-download )
-  if(result)
-    message(FATAL_ERROR "Build step for googletest failed: ${result}")
-  endif()
-
-  # Add googletest directly to our build. This defines
-  # the gtest and gtest_main targets.
-  add_subdirectory(${CMAKE_BINARY_DIR}/googletest-src
-                   ${CMAKE_BINARY_DIR}/googletest-build)
-
-  # Hide targets from "all" and put them in the UnitTests folder in MSVS
-  foreach( target_var gmock gtest gmock_main gtest_main )
-    set_target_properties( ${target_var}
-                           PROPERTIES EXCLUDE_FROM_ALL TRUE
-                           FOLDER "UnitTests/gmock" )
-  endforeach()
-
-  set( GMOCK_LIB gmock )
-  set( GMOCK_LIB_DEBUG gmock )
-  set( GMOCK_LIBRARIES optimized ${GMOCK_LIB} debug ${GMOCK_LIB_DEBUG} )
-  set( GTEST_LIB gtest )
-  set( GTEST_LIB_DEBUG gtest )
-  set( GTEST_LIBRARIES optimized ${GTEST_LIB} debug ${GTEST_LIB_DEBUG} )
-
-  find_path ( GMOCK_INCLUDE_DIR gmock/gmock.h
-              PATHS ${CMAKE_BINARY_DIR}/googletest-src/googlemock/include
-              NO_DEFAULT_PATH )
-  find_path ( GTEST_INCLUDE_DIR gtest/gtest.h
-              PATHS ${CMAKE_BINARY_DIR}/googletest-src/googletest/include
-              NO_DEFAULT_PATH )
-
-
-  # handle the QUIETLY and REQUIRED arguments and set GMOCK_FOUND to TRUE if
-  # all listed variables are TRUE
-  include ( FindPackageHandleStandardArgs )
-  find_package_handle_standard_args( GMOCK DEFAULT_MSG GMOCK_INCLUDE_DIR
-    GMOCK_LIBRARIES )
-  find_package_handle_standard_args( GTEST DEFAULT_MSG GTEST_INCLUDE_DIR
-    GTEST_LIBRARIES )
-
-  mark_as_advanced ( GMOCK_INCLUDE_DIR GMOCK_LIB GMOCK_LIB_DEBUG )
-  mark_as_advanced ( GTEST_INCLUDE_DIR GTEST_LIB GTEST_LIB_DEBUG )
+FetchContent_GetProperties(googletest)
+if(NOT googletest_POPULATED)
+  FetchContent_Populate(googletest)
+  add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
 endif()
+
+mark_as_advanced(
+    BUILD_GMOCK BUILD_GTEST BUILD_SHARED_LIBS
+    gmock_build_tests gtest_build_samples gtest_build_tests
+    gtest_disable_pthreads gtest_force_shared_crt gtest_hide_internal_symbols
+)
+
+# Hide targets from "all" and put them in the UnitTests folder in MSVS
+foreach( target_var gmock gtest gmock_main gtest_main )
+  set_target_properties( ${target_var}
+                          PROPERTIES EXCLUDE_FROM_ALL TRUE
+                          FOLDER "UnitTests/gmock" )
+endforeach()
diff --git a/buildconfig/CMake/GoogleTest.in b/buildconfig/CMake/GoogleTest.in
deleted file mode 100644
index ed97a2b77cce8540ff8d81f2734b03c2615039e1..0000000000000000000000000000000000000000
--- a/buildconfig/CMake/GoogleTest.in
+++ /dev/null
@@ -1,26 +0,0 @@
-cmake_minimum_required(VERSION 3.5)
-
-project(googletest-download NONE)
-
-find_package(Git)
-
-include(ExternalProject)
-
-set ( _tag release-@gtest_version@ )
-set ( _apply_flags --ignore-space-change --whitespace=fix )
-
-ExternalProject_Add(googletest
-  GIT_REPOSITORY    https://github.com/google/googletest.git
-  GIT_TAG           "${_tag}"
-  SOURCE_DIR        "@CMAKE_BINARY_DIR@/googletest-src"
-  BINARY_DIR        "@CMAKE_BINARY_DIR@/googletest-build"
-  PATCH_COMMAND     "@GIT_EXECUTABLE@" reset --hard ${_tag}
-            COMMAND "@GIT_EXECUTABLE@" apply ${_apply_flags} "@CMAKE_SOURCE_DIR@/buildconfig/CMake/googletest_override.patch"
-            COMMAND "@GIT_EXECUTABLE@" apply ${_apply_flags} "@CMAKE_SOURCE_DIR@/buildconfig/CMake/googletest_static.patch"
-            COMMAND "@GIT_EXECUTABLE@" apply ${_apply_flags} "@CMAKE_SOURCE_DIR@/buildconfig/CMake/googletest_msvc_cpp11.patch"
-            COMMAND "@GIT_EXECUTABLE@" apply ${_apply_flags} "@CMAKE_SOURCE_DIR@/buildconfig/CMake/googletest_wconversion.patch"
-  CONFIGURE_COMMAND ""
-  BUILD_COMMAND     ""
-  INSTALL_COMMAND   ""
-  TEST_COMMAND      ""
-)
diff --git a/buildconfig/CMake/QtTargetFunctions.cmake b/buildconfig/CMake/QtTargetFunctions.cmake
index 4d1c9d66c45a286c674ab5b17a657aac029ef29d..228630d7d8374a40bc8219a9cdfd68c91a7ad474 100644
--- a/buildconfig/CMake/QtTargetFunctions.cmake
+++ b/buildconfig/CMake/QtTargetFunctions.cmake
@@ -331,8 +331,7 @@ function (mtd_add_qt_test_executable)
 
   # client and system headers
   target_include_directories ( ${_target_name} PRIVATE ${PARSED_INCLUDE_DIRS} )
-  target_include_directories ( ${_target_name} SYSTEM PRIVATE ${CXXTEST_INCLUDE_DIR}
-                               ${GMOCK_INCLUDE_DIR} ${GTEST_INCLUDE_DIR} )
+  target_include_directories ( ${_target_name} SYSTEM PRIVATE ${CXXTEST_INCLUDE_DIR} )
 
   target_link_libraries (${_target_name} LINK_PRIVATE ${LINK_LIBS}
     ${_link_libs} ${_mtd_qt_libs} )
diff --git a/buildconfig/CMake/Span.cmake b/buildconfig/CMake/Span.cmake
index 120f837fcf1bf8eeca6611b21d1b8b739052b4c4..e5020d24c8a67de0ef3853c2c29156f146f05b36 100644
--- a/buildconfig/CMake/Span.cmake
+++ b/buildconfig/CMake/Span.cmake
@@ -1,12 +1,20 @@
-include(ExternalProject)
+include(FetchContent)
+message(STATUS "Using external tcbrindle/span")
 
-message(STATUS "Using tcbrindle/span in ExternalProject")
+find_package(Git)
 
-# Download and unpack Eigen at configure time
-configure_file(${CMAKE_SOURCE_DIR}/buildconfig/CMake/Span.in ${CMAKE_BINARY_DIR}/extern-span/CMakeLists.txt)
+set ( _apply_flags --ignore-space-change --whitespace=fix )
 
-execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMAKE_SYSTEM_VERSION=${CMAKE_SYSTEM_VERSION} . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/extern-span )
-execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/extern-span )
-
-set(SPAN_INCLUDE_DIR "${CMAKE_BINARY_DIR}/extern-span/span-prefix/src/span/include" CACHE PATH "")
+FetchContent_Declare(
+  span
+  GIT_REPOSITORY https://github.com/tcbrindle/span.git
+  GIT_TAG        08cb4bf0e06c0e36f7e2b64e488ede711a8bb5ad
+  PATCH_COMMAND     ${GIT_EXECUTABLE} reset --hard ${_tag}
+    COMMAND ${GIT_EXECUTABLE} apply ${_apply_flags} ${CMAKE_SOURCE_DIR}/buildconfig/CMake/span_disable_testing.patch
+)
 
+FetchContent_GetProperties(span)
+if(NOT span_POPULATED)
+  FetchContent_Populate(span)
+  add_subdirectory(${span_SOURCE_DIR} ${span_BINARY_DIR} EXCLUDE_FROM_ALL)
+endif()
diff --git a/buildconfig/CMake/Span.in b/buildconfig/CMake/Span.in
deleted file mode 100644
index 60f79cc7919325210497817e8ed77b198bea2e79..0000000000000000000000000000000000000000
--- a/buildconfig/CMake/Span.in
+++ /dev/null
@@ -1,14 +0,0 @@
-cmake_minimum_required ( VERSION 3.5 )
-
-project(span-download NONE)
-
-include( ExternalProject )
-
-ExternalProject_Add(span
-  GIT_REPOSITORY "https://github.com/tcbrindle/span.git"
-  GIT_TAG "e9cf0809c9b8b9ecd06db782dc631f138fab4ee8"
-  CONFIGURE_COMMAND ""
-  BUILD_COMMAND     ""
-  INSTALL_COMMAND   ""
-  TEST_COMMAND      ""
-)
diff --git a/buildconfig/CMake/googletest_msvc_cpp11.patch b/buildconfig/CMake/googletest_msvc_cpp11.patch
deleted file mode 100644
index 339251b3bcb19f54b863abb811b0eaa12c7d3cf9..0000000000000000000000000000000000000000
--- a/buildconfig/CMake/googletest_msvc_cpp11.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
-index 5529ba544..331483e73 100644
---- a/googletest/include/gtest/internal/gtest-port.h
-+++ b/googletest/include/gtest/internal/gtest-port.h
-@@ -325,7 +325,7 @@
- // -std={c,gnu}++{0x,11} is passed.  The C++11 standard specifies a
- // value for __cplusplus, and recent versions of clang, gcc, and
- // probably other compilers set that too in C++11 mode.
--# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L
-+# if __GXX_EXPERIMENTAL_CXX0X__ || __cplusplus >= 201103L || _MSC_VER >= 1900
- // Compiling in at least C++11 mode.
- #  define GTEST_LANG_CXX11 1
- # else
-@@ -357,12 +357,16 @@
- #if GTEST_STDLIB_CXX11
- # define GTEST_HAS_STD_BEGIN_AND_END_ 1
- # define GTEST_HAS_STD_FORWARD_LIST_ 1
--# define GTEST_HAS_STD_FUNCTION_ 1
-+# if !defined(_MSC_VER) || (_MSC_FULL_VER >= 190023824) // works only with VS2015U2 and better
-+#   define GTEST_HAS_STD_FUNCTION_ 1
-+# endif
- # define GTEST_HAS_STD_INITIALIZER_LIST_ 1
- # define GTEST_HAS_STD_MOVE_ 1
- # define GTEST_HAS_STD_SHARED_PTR_ 1
- # define GTEST_HAS_STD_TYPE_TRAITS_ 1
- # define GTEST_HAS_STD_UNIQUE_PTR_ 1
-+# define GTEST_HAS_UNORDERED_MAP_ 1
-+# define GTEST_HAS_UNORDERED_SET_ 1
- #endif
- 
- // C++11 specifies that <tuple> provides std::tuple.
-@@ -660,7 +664,8 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
- // support TR1 tuple.  libc++ only provides std::tuple, in C++11 mode,
- // and it can be used with some compilers that define __GNUC__.
- # if (defined(__GNUC__) && !defined(__CUDACC__) && (GTEST_GCC_VER_ >= 40000) \
--      && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) || _MSC_VER >= 1600
-+      && !GTEST_OS_QNX && !defined(_LIBCPP_VERSION)) \
-+      || (_MSC_VER >= 1600 && _MSC_VER < 1900)
- #  define GTEST_ENV_HAS_TR1_TUPLE_ 1
- # endif
- 
diff --git a/buildconfig/CMake/googletest_override.patch b/buildconfig/CMake/googletest_override.patch
deleted file mode 100644
index 0d162f1e4ea2e38dd0fe36461c55d70fa7e614e7..0000000000000000000000000000000000000000
--- a/buildconfig/CMake/googletest_override.patch
+++ /dev/null
@@ -1,475 +0,0 @@
-:100644 100644 33b37a7... 0000000... M	googlemock/include/gmock/gmock-matchers.h
-:100644 100644 fed7de6... 0000000... M	googlemock/include/gmock/gmock-spec-builders.h
-:100644 100644 50ec728... 0000000... M	googlemock/src/gmock-cardinalities.cc
-:100644 100644 fb53080... 0000000... M	googlemock/src/gmock-internal-utils.cc
-:100644 100644 f63fa9a... 0000000... M	googletest/include/gtest/gtest-spi.h
-:100644 100644 77eb844... 0000000... M	googletest/include/gtest/gtest-test-part.h
-:100644 100644 f846c5b... 0000000... M	googletest/include/gtest/gtest.h
-:100644 100644 2b3a78f... 0000000... M	googletest/include/gtest/internal/gtest-death-test-internal.h
-:100644 100644 82cab9b... 0000000... M	googletest/include/gtest/internal/gtest-param-util.h
-:100644 100644 0094ed5... 0000000... M	googletest/include/gtest/internal/gtest-port.h
-:100644 100644 a01a369... 0000000... M	googletest/src/gtest-death-test.cc
-:100644 100644 ed8a682... 0000000... M	googletest/src/gtest-internal-inl.h
-:100644 100644 d882ab2... 0000000... M	googletest/src/gtest.cc
-
-diff --git a/googlemock/include/gmock/gmock-matchers.h b/googlemock/include/gmock/gmock-matchers.h
-index 33b37a7..ccb66ca 100644
---- a/googlemock/include/gmock/gmock-matchers.h
-+++ b/googlemock/include/gmock/gmock-matchers.h
-@@ -904,14 +904,14 @@ class ComparisonBase {
-    public:
-     explicit Impl(const Rhs& rhs) : rhs_(rhs) {}
-     virtual bool MatchAndExplain(
--        Lhs lhs, MatchResultListener* /* listener */) const {
-+        Lhs lhs, MatchResultListener* /* listener */) const override {
-       return Op()(lhs, rhs_);
-     }
--    virtual void DescribeTo(::std::ostream* os) const {
-+    virtual void DescribeTo(::std::ostream* os) const override {
-       *os << D::Desc() << " ";
-       UniversalPrint(rhs_, os);
-     }
--    virtual void DescribeNegationTo(::std::ostream* os) const {
-+    virtual void DescribeNegationTo(::std::ostream* os) const override {
-       *os << D::NegatedDesc() <<  " ";
-       UniversalPrint(rhs_, os);
-     }
-diff --git a/googlemock/include/gmock/gmock-spec-builders.h b/googlemock/include/gmock/gmock-spec-builders.h
-index fed7de6..0ce84c4 100644
---- a/googlemock/include/gmock/gmock-spec-builders.h
-+++ b/googlemock/include/gmock/gmock-spec-builders.h
-@@ -1421,7 +1421,7 @@ class ActionResultHolder<void> : public UntypedActionResultHolderBase {
-  public:
-   void Unwrap() { }
- 
--  virtual void PrintAsActionResult(::std::ostream* /* os */) const {}
-+  virtual void PrintAsActionResult(::std::ostream* /* os */) const override {}
- 
-   // Performs the given mock function's default action and returns ownership
-   // of an empty ActionResultHolder*.
-diff --git a/googlemock/src/gmock-cardinalities.cc b/googlemock/src/gmock-cardinalities.cc
-index 50ec728..529502f 100644
---- a/googlemock/src/gmock-cardinalities.cc
-+++ b/googlemock/src/gmock-cardinalities.cc
-@@ -71,18 +71,18 @@ class BetweenCardinalityImpl : public CardinalityInterface {
- 
-   // Conservative estimate on the lower/upper bound of the number of
-   // calls allowed.
--  virtual int ConservativeLowerBound() const { return min_; }
--  virtual int ConservativeUpperBound() const { return max_; }
-+  virtual int ConservativeLowerBound() const override { return min_; }
-+  virtual int ConservativeUpperBound() const override { return max_; }
- 
--  virtual bool IsSatisfiedByCallCount(int call_count) const {
-+  virtual bool IsSatisfiedByCallCount(int call_count) const override {
-     return min_ <= call_count && call_count <= max_;
-   }
- 
--  virtual bool IsSaturatedByCallCount(int call_count) const {
-+  virtual bool IsSaturatedByCallCount(int call_count) const override {
-     return call_count >= max_;
-   }
- 
--  virtual void DescribeTo(::std::ostream* os) const;
-+  virtual void DescribeTo(::std::ostream* os) const override;
- 
-  private:
-   const int min_;
-diff --git a/googlemock/src/gmock-internal-utils.cc b/googlemock/src/gmock-internal-utils.cc
-index fb53080..e6e26ee 100644
---- a/googlemock/src/gmock-internal-utils.cc
-+++ b/googlemock/src/gmock-internal-utils.cc
-@@ -76,7 +76,7 @@ GTEST_API_ string ConvertIdentifierNameToWords(const char* id_name) {
- class GoogleTestFailureReporter : public FailureReporterInterface {
-  public:
-   virtual void ReportFailure(FailureType type, const char* file, int line,
--                             const string& message) {
-+                             const string& message) override {
-     AssertHelper(type == kFatal ?
-                  TestPartResult::kFatalFailure :
-                  TestPartResult::kNonFatalFailure,
-diff --git a/googletest/include/gtest/gtest-spi.h b/googletest/include/gtest/gtest-spi.h
-index f63fa9a..f59ec6d 100644
---- a/googletest/include/gtest/gtest-spi.h
-+++ b/googletest/include/gtest/gtest-spi.h
-@@ -75,7 +75,7 @@ class GTEST_API_ ScopedFakeTestPartResultReporter
-   //
-   // This method is from the TestPartResultReporterInterface
-   // interface.
--  virtual void ReportTestPartResult(const TestPartResult& result);
-+  virtual void ReportTestPartResult(const TestPartResult& result) override;
-  private:
-   void Init();
- 
-diff --git a/googletest/include/gtest/gtest-test-part.h b/googletest/include/gtest/gtest-test-part.h
-index 77eb844..b93b114 100644
---- a/googletest/include/gtest/gtest-test-part.h
-+++ b/googletest/include/gtest/gtest-test-part.h
-@@ -162,8 +162,8 @@ class GTEST_API_ HasNewFatalFailureHelper
-     : public TestPartResultReporterInterface {
-  public:
-   HasNewFatalFailureHelper();
--  virtual ~HasNewFatalFailureHelper();
--  virtual void ReportTestPartResult(const TestPartResult& result);
-+  virtual ~HasNewFatalFailureHelper() override;
-+  virtual void ReportTestPartResult(const TestPartResult& result) override;
-   bool has_new_fatal_failure() const { return has_new_fatal_failure_; }
-  private:
-   bool has_new_fatal_failure_;
-diff --git a/googletest/include/gtest/gtest.h b/googletest/include/gtest/gtest.h
-index f846c5b..5df3dab 100644
---- a/googletest/include/gtest/gtest.h
-+++ b/googletest/include/gtest/gtest.h
-@@ -1043,21 +1043,21 @@ class TestEventListener {
- // above.
- class EmptyTestEventListener : public TestEventListener {
-  public:
--  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {}
-+  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
-   virtual void OnTestIterationStart(const UnitTest& /*unit_test*/,
--                                    int /*iteration*/) {}
--  virtual void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) {}
--  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {}
--  virtual void OnTestCaseStart(const TestCase& /*test_case*/) {}
--  virtual void OnTestStart(const TestInfo& /*test_info*/) {}
--  virtual void OnTestPartResult(const TestPartResult& /*test_part_result*/) {}
--  virtual void OnTestEnd(const TestInfo& /*test_info*/) {}
--  virtual void OnTestCaseEnd(const TestCase& /*test_case*/) {}
--  virtual void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) {}
--  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {}
-+                                    int /*iteration*/) override {}
-+  virtual void OnEnvironmentsSetUpStart(const UnitTest& /*unit_test*/) override {}
-+  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {}
-+  virtual void OnTestCaseStart(const TestCase& /*test_case*/) override {}
-+  virtual void OnTestStart(const TestInfo& /*test_info*/) override {}
-+  virtual void OnTestPartResult(const TestPartResult& /*test_part_result*/) override {}
-+  virtual void OnTestEnd(const TestInfo& /*test_info*/) override {}
-+  virtual void OnTestCaseEnd(const TestCase& /*test_case*/) override {}
-+  virtual void OnEnvironmentsTearDownStart(const UnitTest& /*unit_test*/) override {}
-+  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {}
-   virtual void OnTestIterationEnd(const UnitTest& /*unit_test*/,
--                                  int /*iteration*/) {}
--  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {}
-+                                  int /*iteration*/) override {}
-+  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
- };
- 
- // TestEventListeners lets users add listeners to track events in Google Test.
-diff --git a/googletest/include/gtest/internal/gtest-death-test-internal.h b/googletest/include/gtest/internal/gtest-death-test-internal.h
-index 2b3a78f..a82aec1 100644
---- a/googletest/include/gtest/internal/gtest-death-test-internal.h
-+++ b/googletest/include/gtest/internal/gtest-death-test-internal.h
-@@ -148,7 +148,7 @@ class DeathTestFactory {
- class DefaultDeathTestFactory : public DeathTestFactory {
-  public:
-   virtual bool Create(const char* statement, const RE* regex,
--                      const char* file, int line, DeathTest** test);
-+                      const char* file, int line, DeathTest** test) override;
- };
- 
- // Returns true if exit_status describes a process that was terminated
-diff --git a/googletest/include/gtest/internal/gtest-param-util.h b/googletest/include/gtest/internal/gtest-param-util.h
-index 82cab9b..a64b698 100644
---- a/googletest/include/gtest/internal/gtest-param-util.h
-+++ b/googletest/include/gtest/internal/gtest-param-util.h
-@@ -296,10 +296,10 @@ class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface<T> {
-       : container_(begin, end) {}
-   virtual ~ValuesInIteratorRangeGenerator() {}
- 
--  virtual ParamIteratorInterface<T>* Begin() const {
-+  virtual ParamIteratorInterface<T>* Begin() const override {
-     return new Iterator(this, container_.begin());
-   }
--  virtual ParamIteratorInterface<T>* End() const {
-+  virtual ParamIteratorInterface<T>* End() const override {
-     return new Iterator(this, container_.end());
-   }
- 
-@@ -313,14 +313,14 @@ class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface<T> {
-         : base_(base), iterator_(iterator) {}
-     virtual ~Iterator() {}
- 
--    virtual const ParamGeneratorInterface<T>* BaseGenerator() const {
-+    virtual const ParamGeneratorInterface<T>* BaseGenerator() const override {
-       return base_;
-     }
--    virtual void Advance() {
-+    virtual void Advance() override {
-       ++iterator_;
-       value_.reset();
-     }
--    virtual ParamIteratorInterface<T>* Clone() const {
-+    virtual ParamIteratorInterface<T>* Clone() const override {
-       return new Iterator(*this);
-     }
-     // We need to use cached value referenced by iterator_ because *iterator_
-@@ -330,12 +330,12 @@ class ValuesInIteratorRangeGenerator : public ParamGeneratorInterface<T> {
-     // can advance iterator_ beyond the end of the range, and we cannot
-     // detect that fact. The client code, on the other hand, is
-     // responsible for not calling Current() on an out-of-range iterator.
--    virtual const T* Current() const {
-+    virtual const T* Current() const override {
-       if (value_.get() == NULL)
-         value_.reset(new T(*iterator_));
-       return value_.get();
-     }
--    virtual bool Equals(const ParamIteratorInterface<T>& other) const {
-+    virtual bool Equals(const ParamIteratorInterface<T>& other) const override {
-       // Having the same base generator guarantees that the other
-       // iterator is of the same type and we can downcast.
-       GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
-diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
-index 0094ed5..e924906 100644
---- a/googletest/include/gtest/internal/gtest-port.h
-+++ b/googletest/include/gtest/internal/gtest-port.h
-@@ -2098,7 +2098,7 @@ class ThreadLocal {
-   class DefaultValueHolderFactory : public ValueHolderFactory {
-    public:
-     DefaultValueHolderFactory() {}
--    virtual ValueHolder* MakeNewHolder() const { return new ValueHolder(); }
-+    virtual ValueHolder* MakeNewHolder() const override { return new ValueHolder(); }
- 
-    private:
-     GTEST_DISALLOW_COPY_AND_ASSIGN_(DefaultValueHolderFactory);
-@@ -2107,7 +2107,7 @@ class ThreadLocal {
-   class InstanceValueHolderFactory : public ValueHolderFactory {
-    public:
-     explicit InstanceValueHolderFactory(const T& value) : value_(value) {}
--    virtual ValueHolder* MakeNewHolder() const {
-+    virtual ValueHolder* MakeNewHolder() const override {
-       return new ValueHolder(value_);
-     }
- 
-diff --git a/googletest/src/gtest-death-test.cc b/googletest/src/gtest-death-test.cc
-index a01a369..f7241cd 100644
---- a/googletest/src/gtest-death-test.cc
-+++ b/googletest/src/gtest-death-test.cc
-@@ -384,8 +384,8 @@ class DeathTestImpl : public DeathTest {
-   // read_fd_ is expected to be closed and cleared by a derived class.
-   ~DeathTestImpl() { GTEST_DEATH_TEST_CHECK_(read_fd_ == -1); }
- 
--  void Abort(AbortReason reason);
--  virtual bool Passed(bool status_ok);
-+  void Abort(AbortReason reason) override;
-+  virtual bool Passed(bool status_ok) override;
- 
-   const char* statement() const { return statement_; }
-   const RE* regex() const { return regex_; }
-@@ -789,7 +789,7 @@ class ForkingDeathTest : public DeathTestImpl {
-   ForkingDeathTest(const char* statement, const RE* regex);
- 
-   // All of these virtual functions are inherited from DeathTest.
--  virtual int Wait();
-+  virtual int Wait() override;
- 
-  protected:
-   void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; }
-@@ -825,7 +825,7 @@ class NoExecDeathTest : public ForkingDeathTest {
-  public:
-   NoExecDeathTest(const char* a_statement, const RE* a_regex) :
-       ForkingDeathTest(a_statement, a_regex) { }
--  virtual TestRole AssumeRole();
-+  virtual TestRole AssumeRole() override;
- };
- 
- // The AssumeRole process for a fork-and-run death test.  It implements a
-@@ -881,7 +881,7 @@ class ExecDeathTest : public ForkingDeathTest {
-   ExecDeathTest(const char* a_statement, const RE* a_regex,
-                 const char* file, int line) :
-       ForkingDeathTest(a_statement, a_regex), file_(file), line_(line) { }
--  virtual TestRole AssumeRole();
-+  virtual TestRole AssumeRole() override;
-  private:
-   static ::std::vector<testing::internal::string>
-   GetArgvsForDeathTestChildProcess() {
-diff --git a/googletest/src/gtest-internal-inl.h b/googletest/src/gtest-internal-inl.h
-index ed8a682..c89fe14 100644
---- a/googletest/src/gtest-internal-inl.h
-+++ b/googletest/src/gtest-internal-inl.h
-@@ -446,8 +446,8 @@ class OsStackTraceGetter : public OsStackTraceGetterInterface {
-  public:
-   OsStackTraceGetter() {}
- 
--  virtual string CurrentStackTrace(int max_depth, int skip_count);
--  virtual void UponLeavingGTest();
-+  virtual string CurrentStackTrace(int max_depth, int skip_count) override;
-+  virtual void UponLeavingGTest() override;
- 
-  private:
-   GTEST_DISALLOW_COPY_AND_ASSIGN_(OsStackTraceGetter);
-@@ -468,7 +468,7 @@ class DefaultGlobalTestPartResultReporter
-   explicit DefaultGlobalTestPartResultReporter(UnitTestImpl* unit_test);
-   // Implements the TestPartResultReporterInterface. Reports the test part
-   // result in the current test.
--  virtual void ReportTestPartResult(const TestPartResult& result);
-+  virtual void ReportTestPartResult(const TestPartResult& result) override;
- 
-  private:
-   UnitTestImpl* const unit_test_;
-@@ -484,7 +484,7 @@ class DefaultPerThreadTestPartResultReporter
-   explicit DefaultPerThreadTestPartResultReporter(UnitTestImpl* unit_test);
-   // Implements the TestPartResultReporterInterface. The implementation just
-   // delegates to the current global test part result reporter of *unit_test_.
--  virtual void ReportTestPartResult(const TestPartResult& result);
-+  virtual void ReportTestPartResult(const TestPartResult& result) override;
- 
-  private:
-   UnitTestImpl* const unit_test_;
-@@ -1065,7 +1065,7 @@ class GTEST_API_ StreamingListener : public EmptyTestEventListener {
-     }
- 
-     // Sends a string to the socket.
--    virtual void Send(const string& message) {
-+    virtual void Send(const string& message) override {
-       GTEST_CHECK_(sockfd_ != -1)
-           << "Send() can be called only when there is a connection.";
- 
-@@ -1082,7 +1082,7 @@ class GTEST_API_ StreamingListener : public EmptyTestEventListener {
-     void MakeConnection();
- 
-     // Closes the socket.
--    void CloseConnection() {
-+    void CloseConnection() override {
-       GTEST_CHECK_(sockfd_ != -1)
-           << "CloseConnection() can be called only when there is a connection.";
- 
-@@ -1106,11 +1106,11 @@ class GTEST_API_ StreamingListener : public EmptyTestEventListener {
-   explicit StreamingListener(AbstractSocketWriter* socket_writer)
-       : socket_writer_(socket_writer) { Start(); }
- 
--  void OnTestProgramStart(const UnitTest& /* unit_test */) {
-+  void OnTestProgramStart(const UnitTest& /* unit_test */) override {
-     SendLn("event=TestProgramStart");
-   }
- 
--  void OnTestProgramEnd(const UnitTest& unit_test) {
-+  void OnTestProgramEnd(const UnitTest& unit_test) override {
-     // Note that Google Test current only report elapsed time for each
-     // test iteration, not for the entire test program.
-     SendLn("event=TestProgramEnd&passed=" + FormatBool(unit_test.Passed()));
-@@ -1119,39 +1119,39 @@ class GTEST_API_ StreamingListener : public EmptyTestEventListener {
-     socket_writer_->CloseConnection();
-   }
- 
--  void OnTestIterationStart(const UnitTest& /* unit_test */, int iteration) {
-+  void OnTestIterationStart(const UnitTest& /* unit_test */, int iteration) override {
-     SendLn("event=TestIterationStart&iteration=" +
-            StreamableToString(iteration));
-   }
- 
--  void OnTestIterationEnd(const UnitTest& unit_test, int /* iteration */) {
-+  void OnTestIterationEnd(const UnitTest& unit_test, int /* iteration */) override {
-     SendLn("event=TestIterationEnd&passed=" +
-            FormatBool(unit_test.Passed()) + "&elapsed_time=" +
-            StreamableToString(unit_test.elapsed_time()) + "ms");
-   }
- 
--  void OnTestCaseStart(const TestCase& test_case) {
-+  void OnTestCaseStart(const TestCase& test_case) override {
-     SendLn(std::string("event=TestCaseStart&name=") + test_case.name());
-   }
- 
--  void OnTestCaseEnd(const TestCase& test_case) {
-+  void OnTestCaseEnd(const TestCase& test_case) override {
-     SendLn("event=TestCaseEnd&passed=" + FormatBool(test_case.Passed())
-            + "&elapsed_time=" + StreamableToString(test_case.elapsed_time())
-            + "ms");
-   }
- 
--  void OnTestStart(const TestInfo& test_info) {
-+  void OnTestStart(const TestInfo& test_info) override {
-     SendLn(std::string("event=TestStart&name=") + test_info.name());
-   }
- 
--  void OnTestEnd(const TestInfo& test_info) {
-+  void OnTestEnd(const TestInfo& test_info) override {
-     SendLn("event=TestEnd&passed=" +
-            FormatBool((test_info.result())->Passed()) +
-            "&elapsed_time=" +
-            StreamableToString((test_info.result())->elapsed_time()) + "ms");
-   }
- 
--  void OnTestPartResult(const TestPartResult& test_part_result) {
-+  void OnTestPartResult(const TestPartResult& test_part_result) override {
-     const char* file_name = test_part_result.file_name();
-     if (file_name == NULL)
-       file_name = "";
-diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc
-index d882ab2..041047d 100644
---- a/googletest/src/gtest.cc
-+++ b/googletest/src/gtest.cc
-@@ -3034,19 +3034,19 @@ class PrettyUnitTestResultPrinter : public TestEventListener {
-   }
- 
-   // The following methods override what's in the TestEventListener class.
--  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) {}
--  virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration);
--  virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test);
--  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) {}
--  virtual void OnTestCaseStart(const TestCase& test_case);
--  virtual void OnTestStart(const TestInfo& test_info);
--  virtual void OnTestPartResult(const TestPartResult& result);
--  virtual void OnTestEnd(const TestInfo& test_info);
--  virtual void OnTestCaseEnd(const TestCase& test_case);
--  virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test);
--  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) {}
--  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
--  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) {}
-+  virtual void OnTestProgramStart(const UnitTest& /*unit_test*/) override {}
-+  virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration) override;
-+  virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override;
-+  virtual void OnEnvironmentsSetUpEnd(const UnitTest& /*unit_test*/) override {}
-+  virtual void OnTestCaseStart(const TestCase& test_case) override;
-+  virtual void OnTestStart(const TestInfo& test_info) override;
-+  virtual void OnTestPartResult(const TestPartResult& result) override;
-+  virtual void OnTestEnd(const TestInfo& test_info) override;
-+  virtual void OnTestCaseEnd(const TestCase& test_case) override;
-+  virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override;
-+  virtual void OnEnvironmentsTearDownEnd(const UnitTest& /*unit_test*/) override {}
-+  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override;
-+  virtual void OnTestProgramEnd(const UnitTest& /*unit_test*/) override {}
- 
-  private:
-   static void PrintFailedTests(const UnitTest& unit_test);
-@@ -3245,19 +3245,19 @@ class TestEventRepeater : public TestEventListener {
-   bool forwarding_enabled() const { return forwarding_enabled_; }
-   void set_forwarding_enabled(bool enable) { forwarding_enabled_ = enable; }
- 
--  virtual void OnTestProgramStart(const UnitTest& unit_test);
--  virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration);
--  virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test);
--  virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test);
--  virtual void OnTestCaseStart(const TestCase& test_case);
--  virtual void OnTestStart(const TestInfo& test_info);
--  virtual void OnTestPartResult(const TestPartResult& result);
--  virtual void OnTestEnd(const TestInfo& test_info);
--  virtual void OnTestCaseEnd(const TestCase& test_case);
--  virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test);
--  virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test);
--  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
--  virtual void OnTestProgramEnd(const UnitTest& unit_test);
-+  virtual void OnTestProgramStart(const UnitTest& unit_test) override;
-+  virtual void OnTestIterationStart(const UnitTest& unit_test, int iteration) override;
-+  virtual void OnEnvironmentsSetUpStart(const UnitTest& unit_test) override;
-+  virtual void OnEnvironmentsSetUpEnd(const UnitTest& unit_test) override;
-+  virtual void OnTestCaseStart(const TestCase& test_case) override;
-+  virtual void OnTestStart(const TestInfo& test_info) override;
-+  virtual void OnTestPartResult(const TestPartResult& result) override;
-+  virtual void OnTestEnd(const TestInfo& test_info) override;
-+  virtual void OnTestCaseEnd(const TestCase& test_case) override;
-+  virtual void OnEnvironmentsTearDownStart(const UnitTest& unit_test) override;
-+  virtual void OnEnvironmentsTearDownEnd(const UnitTest& unit_test) override;
-+  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override;
-+  virtual void OnTestProgramEnd(const UnitTest& unit_test) override;
- 
-  private:
-   // Controls whether events will be forwarded to listeners_. Set to false
-@@ -3350,7 +3350,7 @@ class XmlUnitTestResultPrinter : public EmptyTestEventListener {
-  public:
-   explicit XmlUnitTestResultPrinter(const char* output_file);
- 
--  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration);
-+  virtual void OnTestIterationEnd(const UnitTest& unit_test, int iteration) override;
- 
-  private:
-   // Is c a whitespace character that is normalized to a space character
diff --git a/buildconfig/CMake/googletest_static.patch b/buildconfig/CMake/googletest_static.patch
deleted file mode 100644
index bda83e589d5b173e79c5f1f28e6e2abefc8e6451..0000000000000000000000000000000000000000
--- a/buildconfig/CMake/googletest_static.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-:100644 100644 8d2b552... 0000000... M	CMakeLists.txt
-:100644 100644 beb259a... 0000000... M	googlemock/CMakeLists.txt
-:100644 100644 621d0f0... 0000000... M	googletest/CMakeLists.txt
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8d2b552..5c0d122 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,5 +1,3 @@
--cmake_minimum_required(VERSION 2.6.2)
--
- project( googletest-distribution )
- 
- enable_testing()
-diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt
-index beb259a..6f0cb3b 100644
---- a/googlemock/CMakeLists.txt
-+++ b/googlemock/CMakeLists.txt
-@@ -7,7 +7,7 @@
- 
- # BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to
- # make it prominent in the GUI.
--option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
-+set(BUILD_SHARED_LIBS OFF)
- 
- option(gmock_build_tests "Build all of Google Mock's own tests." OFF)
- 
-@@ -38,7 +38,6 @@ endif()
- # ${gmock_BINARY_DIR}.
- # Language "C" is required for find_package(Threads).
- project(gmock CXX C)
--cmake_minimum_required(VERSION 2.6.2)
- 
- if (COMMAND set_up_hermetic_build)
-   set_up_hermetic_build()
-@@ -103,10 +102,10 @@ endif()
- ########################################################################
- #
- # Install rules
--install(TARGETS gmock gmock_main
--  DESTINATION lib)
--install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock
--  DESTINATION include)
-+#install(TARGETS gmock gmock_main
-+#  DESTINATION lib)
-+#install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock
-+#  DESTINATION include)
- 
- ########################################################################
- #
-diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt
-index 621d0f0..c77f9ef 100644
---- a/googletest/CMakeLists.txt
-+++ b/googletest/CMakeLists.txt
-@@ -7,7 +7,7 @@
- 
- # BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to
- # make it prominent in the GUI.
--option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF)
-+set(BUILD_SHARED_LIBS OFF)
- 
- # When other libraries are using a shared version of runtime libraries,
- # Google Test also has to use one.
-@@ -45,7 +45,6 @@ endif()
- # ${gtest_BINARY_DIR}.
- # Language "C" is required for find_package(Threads).
- project(gtest CXX C)
--cmake_minimum_required(VERSION 2.6.2)
- 
- if (COMMAND set_up_hermetic_build)
-   set_up_hermetic_build()
-@@ -102,10 +101,10 @@ endif()
- ########################################################################
- #
- # Install rules
--install(TARGETS gtest gtest_main
--  DESTINATION lib)
--install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest
--  DESTINATION include)
-+#install(TARGETS gtest gtest_main
-+#  DESTINATION lib)
-+#install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest
-+#  DESTINATION include)
- 
- ########################################################################
- #
diff --git a/buildconfig/CMake/googletest_wconversion.patch b/buildconfig/CMake/googletest_wconversion.patch
deleted file mode 100644
index 3ba9d824fb3ef7ec4430da491c5d2eb057d66d3b..0000000000000000000000000000000000000000
--- a/buildconfig/CMake/googletest_wconversion.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/googlemock/include/gmock/gmock-matchers.h b/googlemock/include/gmock/gmock-matchers.h
-index 33b37a7..fbb5734 100644
---- a/googlemock/include/gmock/gmock-matchers.h
-+++ b/googlemock/include/gmock/gmock-matchers.h
-@@ -1620,8 +1620,13 @@ class VariadicMatcher {
-   }
- 
-  private:
-+#if defined(__GNUC__) && !defined(__clang__)
-+#pragma GCC diagnostic ignored "-Wconversion"
-+#endif
-   typedef MatcherList<sizeof...(Args), Args...> MatcherListType;
--
-+#if defined(__GNUC__) && !defined(__clang__)
-+#pragma GCC diagnostic warning "-Wconversion"
-+#endif
-   const typename MatcherListType::ListType matchers_;
- 
-   GTEST_DISALLOW_ASSIGN_(VariadicMatcher);
diff --git a/buildconfig/CMake/span_disable_testing.patch b/buildconfig/CMake/span_disable_testing.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6d2b0b1a01e9618b12c357a088acd68afe0dc3f5
--- /dev/null
+++ b/buildconfig/CMake/span_disable_testing.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7ad07e2..0470696 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -2,7 +2,7 @@
+ cmake_minimum_required(VERSION 3.8)
+ project(span LANGUAGES CXX)
+ 
+-enable_testing()
++# enable_testing()
+ 
+ add_library(span INTERFACE)
+ target_sources(span INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include/tcb/span.hpp)
+@@ -11,4 +11,4 @@ target_compile_features(span INTERFACE cxx_std_11)
+ 
+ set(TCB_SPAN_TEST_CXX_STD 11 CACHE STRING "C++ standard version for testing")
+ 
+-add_subdirectory(test)
++# add_subdirectory(test)
diff --git a/qt/icons/CMakeLists.txt b/qt/icons/CMakeLists.txt
index 926859b20f25eb85dad36969815bccc3ccbd0fcd..2a390c22e883e06d1af19531179cc1038707f5c9 100644
--- a/qt/icons/CMakeLists.txt
+++ b/qt/icons/CMakeLists.txt
@@ -78,8 +78,7 @@ mtd_add_qt_tests(
   LINK_LIBS
     ${TARGET_LIBRARIES}
     ${Boost_LIBRARIES}
-    ${GMOCK_LIBRARIES}
-    ${GTEST_LIBRARIES}
+    gmock
   MTD_QT_LINK_LIBS MantidQtIcons
   PARENT_DEPENDENCIES GUITests
 )
diff --git a/qt/paraview_ext/VatesAPI/CMakeLists.txt b/qt/paraview_ext/VatesAPI/CMakeLists.txt
index d1422b220ecf7fd771f65c9350af1a2da6ac4216..e3e947f2a0737881d849462235f5ad2bb0c6b779 100644
--- a/qt/paraview_ext/VatesAPI/CMakeLists.txt
+++ b/qt/paraview_ext/VatesAPI/CMakeLists.txt
@@ -230,8 +230,7 @@ endif()
 # Create test file projects
 include_directories(SYSTEM
                     ${CXXTEST_INCLUDE_DIR}
-                    ${GMOCK_INCLUDE_DIR}
-                    ${GTEST_INCLUDE_DIR})
+)
 
 include_directories(inc
                     ../../../Framework/TestHelpers/inc
@@ -263,8 +262,8 @@ target_link_libraries(VatesAPITest
                       ${vtkjsoncpp_LIBRARIES}
                       ${POCO_LIBRARIES}
                       ${Boost_LIBRARIES}
-                      ${GMOCK_LIBRARIES}
-                      ${GTEST_LIBRARIES})
+                      gmock
+)
 add_dependencies(AllTests VatesAPITest)
 # Add to the 'UnitTests' group in VS
 set_property(TARGET VatesAPITest PROPERTY FOLDER "UnitTests")
diff --git a/qt/paraview_ext/VatesAlgorithms/CMakeLists.txt b/qt/paraview_ext/VatesAlgorithms/CMakeLists.txt
index 9e7d63ef19cc31fad45f4e6459748b91193064f0..a794008784f2d98413328991527f3b0f6ffbafb3 100644
--- a/qt/paraview_ext/VatesAlgorithms/CMakeLists.txt
+++ b/qt/paraview_ext/VatesAlgorithms/CMakeLists.txt
@@ -64,8 +64,7 @@ endif()
 # Create test file projects
 include_directories(SYSTEM
                     ${CXXTEST_INCLUDE_DIR}
-                    ${GMOCK_INCLUDE_DIR}
-                    ${GTEST_INCLUDE_DIR})
+)
 
 include_directories(inc
                     ../../../Framework/TestHelpers/inc
@@ -87,8 +86,8 @@ target_link_libraries(VatesAlgorithmsTest
                       VatesAPI
                       VatesAlgorithms
                       ${POCO_LIBRARIES}
-                      ${GMOCK_LIBRARIES}
-                      ${GTEST_LIBRARIES})
+                      gmock
+)
 add_dependencies(AllTests VatesAlgorithmsTest)
 # Add to the 'UnitTests' group in VS
 set_property(TARGET VatesAlgorithmsTest PROPERTY FOLDER "UnitTests")
diff --git a/qt/scientific_interfaces/CMakeLists.txt b/qt/scientific_interfaces/CMakeLists.txt
index c9c727bd11f0203fd371da2da35fd11bafc35136..389dbf7e7c4a5089cc7c973e4d7098a74ed764f7 100644
--- a/qt/scientific_interfaces/CMakeLists.txt
+++ b/qt/scientific_interfaces/CMakeLists.txt
@@ -93,8 +93,7 @@ mtd_add_qt_tests(TARGET_NAME MantidQtScientificInterfacesTest
                    DataObjects
                    PythonInterfaceCore
                    ${PYTHON_LIBRARIES}
-                   ${GMOCK_LIBRARIES}
-                   ${GTEST_LIBRARIES}
+                   gmock
                    ${POCO_LIBRARIES}
                    ${Boost_LIBRARIES}
                  QT4_LINK_LIBS
@@ -155,8 +154,7 @@ mtd_add_qt_tests(TARGET_NAME MantidQtScientificInterfacesTest
                    ${CORE_MANTIDLIBS}
                    DataObjects
                    PythonInterfaceCore
-                   ${GMOCK_LIBRARIES}
-                   ${GTEST_LIBRARIES}
+                   gmock
                    ${POCO_LIBRARIES}
                    ${Boost_LIBRARIES}
                    ${PYTHON_LIBRARIES}
diff --git a/qt/scientific_interfaces/Indirect/test/CMakeLists.txt b/qt/scientific_interfaces/Indirect/test/CMakeLists.txt
index 97d9f10a0417eb2e7cf6e63f2ebd89ecc4002741..1d56db1547ed184e375e4d79ee6bd30eca69f268 100644
--- a/qt/scientific_interfaces/Indirect/test/CMakeLists.txt
+++ b/qt/scientific_interfaces/Indirect/test/CMakeLists.txt
@@ -47,8 +47,7 @@ mtd_add_qt_tests(
     ${CORE_MANTIDLIBS}
     CurveFitting
     DataObjects
-    ${GMOCK_LIBRARIES}
-    ${GTEST_LIBRARIES}
+    gmock
     ${POCO_LIBRARIES}
     ${Boost_LIBRARIES}
   QT4_LINK_LIBS
diff --git a/qt/widgets/common/CMakeLists.txt b/qt/widgets/common/CMakeLists.txt
index bf98cb1c1c80499eeb41d66c5bb5bdbfc584386b..c5e06592e173490485b1fd0be073019534abb157 100644
--- a/qt/widgets/common/CMakeLists.txt
+++ b/qt/widgets/common/CMakeLists.txt
@@ -1036,8 +1036,7 @@ mtd_add_qt_tests(
   LINK_LIBS
     ${TARGET_LIBRARIES}
     DataObjects
-    ${GMOCK_LIBRARIES}
-    ${GTEST_LIBRARIES}
+    gmock
   MTD_QT_LINK_LIBS MantidQtWidgetsCommon
   PARENT_DEPENDENCIES GUITests
 )
@@ -1078,7 +1077,6 @@ mtd_add_qt_tests(
     ../../../Framework/TestHelpers/inc
     ../../../Framework/DataObjects/inc
     ../../../Framework/Crystal/inc
-    ${GMOCK_INCLUDE_DIR}
   TEST_HELPER_SRCS
     ../../../Framework/TestHelpers/src/TearDownWorld.cpp
     ../../../Framework/TestHelpers/src/WorkspaceCreationHelper.cpp
@@ -1090,8 +1088,7 @@ mtd_add_qt_tests(
     ${Boost_LIBRARIES}
     PythonInterfaceCore
     DataObjects
-    ${GMOCK_LIBRARIES}
-    ${GTEST_LIBRARIES}
+    gmock
   MTD_QT_LINK_LIBS MantidQtWidgetsCommon
   PARENT_DEPENDENCIES GUITests
 )
diff --git a/qt/widgets/instrumentview/CMakeLists.txt b/qt/widgets/instrumentview/CMakeLists.txt
index 806dea6b7d86ab3524c920868d31511cf23b493b..aeff73ba953eb6eea8514304d0717a61b0f53813 100644
--- a/qt/widgets/instrumentview/CMakeLists.txt
+++ b/qt/widgets/instrumentview/CMakeLists.txt
@@ -258,8 +258,7 @@ mtd_add_qt_tests(
     ${POCO_LIBRARIES}
     ${Boost_LIBRARIES}
     ${PYTHON_LIBRARIES}
-    ${GMOCK_LIBRARIES}
-    ${GTEST_LIBRARIES}
+    gmock
   QT5_LINK_LIBS Qt5::OpenGL
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
diff --git a/qt/widgets/plotting/CMakeLists.txt b/qt/widgets/plotting/CMakeLists.txt
index fb76627e4481bb9d18177b64abfa694a4e8dba8f..5c8cff3471db4849b2145b94e0e97959a8f5cfe1 100644
--- a/qt/widgets/plotting/CMakeLists.txt
+++ b/qt/widgets/plotting/CMakeLists.txt
@@ -134,8 +134,7 @@ mtd_add_qt_tests(
     DataObjects
     ${POCO_LIBRARIES}
     ${Boost_LIBRARIES}
-    ${GMOCK_LIBRARIES}
-    ${GTEST_LIBRARIES}
+    gmock
   QT4_LINK_LIBS Qwt5
   MTD_QT_LINK_LIBS
     MantidQtWidgetsCommon
diff --git a/qt/widgets/sliceviewer/CMakeLists.txt b/qt/widgets/sliceviewer/CMakeLists.txt
index fbaffd08dc616c98329580a3cc4d24685176ad55..b16e8e35f105be6c489b489669c1321a6fc55872 100644
--- a/qt/widgets/sliceviewer/CMakeLists.txt
+++ b/qt/widgets/sliceviewer/CMakeLists.txt
@@ -173,8 +173,7 @@ mtd_add_qt_tests(TARGET_NAME MantidQtWidgetsSliceViewerTest
                    ${CORE_MANTIDLIBS}
                    Crystal
                    DataObjects
-                   ${GMOCK_LIBRARIES}
-                   ${GTEST_LIBRARIES}
+                   gmock
                    ${POCO_LIBRARIES}
                    ${Boost_LIBRARIES}
                  QT4_LINK_LIBS