]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/dmclock/cmake/modules/BuildGTest.cmake
import quincy beta 17.1.0
[ceph.git] / ceph / src / dmclock / cmake / modules / BuildGTest.cmake
index 356c7d5ab31dce7f069a4d66e78bc9c9da0fbe10..456d1d3be563022dd59de089b700f6924d15387e 100644 (file)
@@ -1,21 +1,36 @@
 macro(_build_gtest gtest_root)
   include(ExternalProject)
+  set(gtest_library ${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX})
+  set(gtest_main_library ${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX})
+  set(gmock_library ${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX})
+  set(gmock_main_library ${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX})
+
   ExternalProject_Add(googletest
     SOURCE_DIR ${gtest_root}
     CMAKE_ARGS -DBUILD_GMOCK=OFF -DBUILD_GTEST=ON
+    BUILD_BYPRODUCTS
+      <BINARY_DIR>/lib/${gtest_library}
+      <BINARY_DIR>/lib/${gtest_main_library}
+      <BINARY_DIR>/lib/${gmock_library}
+      <BINARY_DIR>/lib/${gmock_main_library}
     INSTALL_COMMAND ""
     LOG_CONFIGURE ON
     LOG_BUILD ON)
 
   ExternalProject_Get_Property(googletest source_dir)
-  set(GTEST_INCLUDE_DIRS ${source_dir}/googletest/include)
-  set(GMOCK_INCLUDE_DIRS ${source_dir}/googlemock/include)
+  find_path(GTEST_INCLUDE_DIRS
+    NAMES gtest/gtest.h
+    PATHS ${source_dir}/include /usr/include)
+  find_path(GMOCK_INCLUDE_DIRS
+    NAMES gmock/gmock.h
+    PATHS ${source_dir}/googlemock/include /usr/include)
 
   find_package(Threads REQUIRED)
 
   ExternalProject_Get_Property(googletest binary_dir)
-  set(GTEST_LIBRARY_PATH ${binary_dir}/googletest/${CMAKE_FIND_LIBRARY_PREFIXES}gtest.a)
-  set(GTEST_LIBRARY gtest)
+  set(GTEST_LIBRARY_PATH ${binary_dir}/lib/${gtest_library})
+  unset(gtest_library)
+  set(GTEST_LIBRARY GTest::GTest)
   add_library(${GTEST_LIBRARY} STATIC IMPORTED)
   set_target_properties(${GTEST_LIBRARY} PROPERTIES
     INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}"
@@ -25,8 +40,9 @@ macro(_build_gtest gtest_root)
   add_dependencies(${GTEST_LIBRARY} googletest)
   set(GTEST_LIBRARIES ${GTEST_LIBRARY})
 
-  set(GTEST_MAIN_LIBRARY_PATH ${binary_dir}/googletest/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main.a)
-  set(GTEST_MAIN_LIBRARY gtest_main)
+  set(GTEST_MAIN_LIBRARY_PATH ${binary_dir}/lib/${gtest_main_library})
+  unset(gtest_main_library)
+  set(GTEST_MAIN_LIBRARY GTest::Main)
   add_library(${GTEST_MAIN_LIBRARY} STATIC IMPORTED)
   set_target_properties(${GTEST_MAIN_LIBRARY} PROPERTIES
     INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIRS}"
@@ -34,8 +50,9 @@ macro(_build_gtest gtest_root)
     IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
   add_dependencies(${GTEST_MAIN_LIBRARY} googletest)
 
-  set(GMOCK_LIBRARY_PATH ${binary_dir}/googlemock/${CMAKE_FIND_LIBRARY_PREFIXES}gmock.a)
-  set(GMOCK_LIBRARY gmock)
+  set(GMOCK_LIBRARY_PATH ${binary_dir}/lib/${gmock_library})
+  unset(gmock_library)
+  set(GMOCK_LIBRARY GMock::GMock)
   add_library(${GMOCK_LIBRARY} STATIC IMPORTED)
   set_target_properties(${GMOCK_LIBRARY} PROPERTIES
     INTERFACE_INCLUDE_DIRECTORIES "${GMOCK_INCLUDE_DIRS}"
@@ -44,8 +61,9 @@ macro(_build_gtest gtest_root)
     IMPORTED_LINK_INTERFACE_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
   add_dependencies(${GMOCK_LIBRARY} googletest)
 
-  set(GMOCK_MAIN_LIBRARY_PATH ${binary_dir}/googlemock/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main.a)
-  set(GMOCK_MAIN_LIBRARY gmock_main)
+  set(GMOCK_MAIN_LIBRARY_PATH ${binary_dir}/lib/${gmock_main_library})
+  unset(gmock_main_library)
+  set(GMOCK_MAIN_LIBRARY GMock::Main)
   add_library(${GMOCK_MAIN_LIBRARY} STATIC IMPORTED)
   set_target_properties(${GMOCK_MAIN_LIBRARY} PROPERTIES
     INTERFACE_INCLUDE_DIRECTORIES "${GMOCK_INCLUDE_DIRS}"