]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: link against gtest in a better way 23628/head
authorKefu Chai <kchai@redhat.com>
Tue, 14 Aug 2018 08:11:13 +0000 (16:11 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 17 Aug 2018 07:21:27 +0000 (15:21 +0800)
* add FindGMock.cmake which allows user to use the libgtest-dev
  shipped by distro
* add GMock::{GMock,Main}, GTest::{GTest,Main} targets to be
  compatible with FindGTest.cmake and FindGMock.cmake, which
  expose the built libraries with properties adhered to
  them. so the consumer of them can import them in a better way.
* update tests to drop the commands like
  set_target_properties(foo PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS}),
  as they are already linked against gmock and gtest.

Signed-off-by: Kefu Chai <kchai@redhat.com>
29 files changed:
cmake/modules/AddCephTest.cmake
cmake/modules/FindGMock.cmake [new file with mode: 0644]
src/CMakeLists.txt
src/test/CMakeLists.txt
src/test/ObjectMap/CMakeLists.txt
src/test/cls_hello/CMakeLists.txt
src/test/cls_journal/CMakeLists.txt
src/test/cls_lock/CMakeLists.txt
src/test/cls_log/CMakeLists.txt
src/test/cls_lua/CMakeLists.txt
src/test/cls_numops/CMakeLists.txt
src/test/cls_rbd/CMakeLists.txt
src/test/cls_refcount/CMakeLists.txt
src/test/cls_rgw/CMakeLists.txt
src/test/cls_sdk/CMakeLists.txt
src/test/cls_statelog/CMakeLists.txt
src/test/cls_version/CMakeLists.txt
src/test/erasure-code/CMakeLists.txt
src/test/filestore/CMakeLists.txt
src/test/journal/CMakeLists.txt
src/test/libcephfs/CMakeLists.txt
src/test/librados/CMakeLists.txt
src/test/libradosstriper/CMakeLists.txt
src/test/librbd/CMakeLists.txt
src/test/mon/CMakeLists.txt
src/test/msgr/CMakeLists.txt
src/test/objectstore/CMakeLists.txt
src/test/rbd_mirror/CMakeLists.txt
src/test/rgw/CMakeLists.txt

index a4ed7fbd88ae2c3fa138081aaaaa9dec4b5f3398..4ca83eabba00e6c1de4328600d1491fa1371f80b 100644 (file)
@@ -49,5 +49,4 @@ function(add_ceph_unittest unittest_name)
   endif()
   add_ceph_test(${unittest_name} "${UNITTEST}")
   target_link_libraries(${unittest_name} ${UNITTEST_LIBS})
-  set_target_properties(${unittest_name} PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 endfunction()
diff --git a/cmake/modules/FindGMock.cmake b/cmake/modules/FindGMock.cmake
new file mode 100644 (file)
index 0000000..ea53f64
--- /dev/null
@@ -0,0 +1,21 @@
+find_path(GMock_INCLUDE_DIR NAMES gmock/gmock.h)
+find_library(GMock_GMock_LIBRARY NAMES gmock)
+find_library(GMock_Main_LIBRARY NAMES gmock_main)
+
+find_package_handle_standard_args(GMock
+  REQUIRED_VARS
+    GMock_GMock_LIBRARY
+    GMock_Main_LIBRARY
+    GMock_INCLUDE_DIR)
+
+if(GMock_FOUND)
+  foreach(c GMock Main)
+    if(NOT TARGET GMock::${c})
+      add_library(GMock::${c} UNKNOWN IMPORTED)
+      set_target_properties(GMock::${c} PROPERTIES
+        IMPORTED_LOCATION "${GMock_${c}_LIBRARY}"
+        INTERFACE_INCLUDE_DIRECTORIES "${GMock_INCLUDE_DIR}"
+        IMPORTED_LINK_INTERFACE_LANGUAGES "CXX")
+    endif()
+  endforeach()
+endif()
index 556e9c775d75f4ba27237eecc0456fafaeab0f5b..5a8bf7490a861d6dbe7f2c1c9d8a1b4e597df2af 100644 (file)
@@ -293,17 +293,9 @@ add_subdirectory(json_spirit)
 include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/xxHash")
 include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/rapidjson/include")
 
-set(GMOCK_INCLUDE_DIRS
-  "${CMAKE_SOURCE_DIR}/src/googletest/googletest/include/gmock")
-set(GTEST_INCLUDE_DIRS
-  "${CMAKE_SOURCE_DIR}/src/googletest/googletest/include/gtest")
-
 include_directories("${CMAKE_SOURCE_DIR}/src/dmclock/src")
 include_directories("${CMAKE_SOURCE_DIR}/src/dmclock/support/src")
 
-# needed for source files that friend unit tests (e.g., using FRIEND_TEST)
-include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/googletest/googletest/include")
-
 if(WITH_SEASTAR)
   find_package(fmt 4.0.0 QUIET)
   if(NOT fmt_FOUND)
@@ -541,7 +533,22 @@ add_subdirectory(erasure-code)
 
 # Support/Tools
 if(WITH_TESTS)
-  add_subdirectory(googletest/googlemock)
+  option(WITH_SYSTEM_GTEST "require and build with system gtest and gmock" OFF)
+  if(WITH_SYSTEM_GTEST)
+    find_package(GTest REQUIRED)
+    find_package(GMock REQUIRED)
+  else()
+    add_subdirectory(googletest/googlemock)
+    add_library(GMock::GMock ALIAS gmock)
+    add_library(GMock::Main ALIAS gmock_main)
+    target_include_directories(gmock INTERFACE
+      $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
+    target_include_directories(gmock_main INTERFACE
+      $<TARGET_PROPERTY:gtest,INTERFACE_INCLUDE_DIRECTORIES>)
+    add_library(GTest::GTest ALIAS gtest)
+    add_library(GTest::Main ALIAS gtest_main)
+  endif()
+
   add_subdirectory(test)
 endif(WITH_TESTS)
 
index 28c5dc213cc620415e03526c308eb60bcc55b416..75deeaf7adecbf35eb24d459d03ac479867a28e7 100644 (file)
@@ -1,11 +1,10 @@
 include(AddCephTest)
 
-set(UNITTEST_LIBS gmock_main gmock gtest ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS})
-set(UNITTEST_CXX_FLAGS "-I${CMAKE_SOURCE_DIR}/src/googletest/googlemock/include -I${CMAKE_BINARY_DIR}/src/googletest/googlemock/include -I${CMAKE_SOURCE_DIR}/src/googletest/googletest/include -I${CMAKE_BINARY_DIR}/src/googletest/googletest/include -fno-strict-aliasing")
+set(UNITTEST_LIBS GMock::Main GMock::GMock GTest::GTest ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS})
 
 add_library(unit-main OBJECT unit.cc)
-set_source_files_properties(unit.cc PROPERTIES
-  COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
+target_include_directories(unit-main PRIVATE
+  $<TARGET_PROPERTY:GTest::GTest,INTERFACE_INCLUDE_DIRECTORIES>)
 
 add_subdirectory(cls_hello)
 add_subdirectory(cls_lock)
@@ -186,8 +185,6 @@ if(${WITH_RADOSGW})
     ${CURL_LIBRARIES}
     ${EXPAT_LIBRARIES}
     ${CMAKE_DL_LIBS} ${UNITTEST_LIBS})
-  set_target_properties(test_cors PROPERTIES COMPILE_FLAGS
-    ${UNITTEST_CXX_FLAGS})
 
   # ceph_test_cls_rgw_meta
   set(test_cls_rgw_meta_srcs test_rgw_admin_meta.cc)
@@ -209,8 +206,6 @@ if(${WITH_RADOSGW})
     ${CURL_LIBRARIES}
     ${EXPAT_LIBRARIES}
     ${CMAKE_DL_LIBS} ${UNITTEST_LIBS} ${CRYPTO_LIBS})
-  set_target_properties(ceph_test_cls_rgw_meta PROPERTIES
-    COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 
   install(TARGETS
     ceph_test_cls_rgw_meta
@@ -242,8 +237,6 @@ if(${WITH_RADOSGW})
     ${EXTRALIBS}
     ${CRYPTO_LIBS}
     )
-  set_target_properties(ceph_test_cls_rgw_log PROPERTIES COMPILE_FLAGS
-    ${UNITTEST_CXX_FLAGS})
 
   # ceph_test_cls_rgw_opstate
   set(ceph_test_cls_rgw_opstate_srcs test_rgw_admin_opstate.cc)
@@ -270,15 +263,11 @@ if(${WITH_RADOSGW})
     ${CRYPTO_LIBS}
     ${EXTRALIBS}
     )
-  set_target_properties(ceph_test_cls_rgw_opstate PROPERTIES
-    COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 
 # ceph_test_librgw_file (nfs-like RGW interface)
 add_executable(ceph_test_librgw_file
   librgw_file.cc
   )
-set_target_properties(ceph_test_librgw_file PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 if(WITH_RADOSGW_FCGI_FRONTEND)
 target_include_directories(ceph_test_librgw_file SYSTEM PRIVATE ${FCGI_INCLUDE_DIR})
 endif(WITH_RADOSGW_FCGI_FRONTEND)
@@ -294,8 +283,6 @@ target_link_libraries(ceph_test_librgw_file
 add_executable(ceph_test_librgw_file_cd
   librgw_file_cd.cc
   )
-set_target_properties(ceph_test_librgw_file_cd PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_librgw_file_cd
   rgw
   librados
@@ -308,8 +295,6 @@ target_link_libraries(ceph_test_librgw_file_cd
 add_executable(ceph_test_librgw_file_gp
   librgw_file_gp.cc
   )
-set_target_properties(ceph_test_librgw_file_gp PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_librgw_file_gp
   rgw
   librados
@@ -322,8 +307,6 @@ target_link_libraries(ceph_test_librgw_file_gp
 add_executable(ceph_test_librgw_file_nfsns
   librgw_file_nfsns.cc
   )
-set_target_properties(ceph_test_librgw_file_nfsns PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 if(WITH_RADOSGW_FCGI_FRONTEND)
 target_include_directories(ceph_test_librgw_file_nfsns SYSTEM PRIVATE ${FCGI_INCLUDE_DIR})
 endif(WITH_RADOSGW_FCGI_FRONTEND)
@@ -339,8 +322,6 @@ target_link_libraries(ceph_test_librgw_file_nfsns
 add_executable(ceph_test_librgw_file_aw
   librgw_file_aw.cc
   )
-set_target_properties(ceph_test_librgw_file_aw PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_librgw_file_aw
   rgw
   librados
@@ -353,8 +334,6 @@ target_link_libraries(ceph_test_librgw_file_aw
 add_executable(ceph_test_librgw_file_marker
   librgw_file_marker.cc
   )
-set_target_properties(ceph_test_librgw_file_marker PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_librgw_file_marker
   rgw
   librados
@@ -367,8 +346,6 @@ target_link_libraries(ceph_test_librgw_file_marker
 add_executable(ceph_test_rgw_token
   test_rgw_token.cc
   )
-set_target_properties(ceph_test_rgw_token PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_rgw_token
   rgw
   os
@@ -382,8 +359,6 @@ add_executable(test_rgw_ldap
   ${CMAKE_SOURCE_DIR}/src/rgw/rgw_ldap.cc
   test_rgw_ldap.cc
   )
-set_target_properties(test_rgw_ldap PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(test_rgw_ldap
   librados
   ceph-common
@@ -393,7 +368,6 @@ target_link_libraries(test_rgw_ldap
 
 # unittest_librgw_admin_user
 add_executable(ceph_test_librgw_admin_user test_librgw_admin_user.cc)
-set_target_properties(ceph_test_librgw_admin_user PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_librgw_admin_user
   rgw_admin_user
   cls_otp_client
@@ -440,8 +414,6 @@ install(TARGETS
 add_executable(ceph_test_filejournal
   test_filejournal.cc
   )
-set_target_properties(ceph_test_filejournal PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_filejournal
   os
   ceph-common
@@ -468,13 +440,10 @@ add_executable(ceph_test_snap_mapper
   $<TARGET_OBJECTS:unit-main>
   )
 target_link_libraries(ceph_test_snap_mapper osd global ${BLKID_LIBRARIES} ${UNITTEST_LIBS})
-set_target_properties(ceph_test_snap_mapper PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 
 add_executable(ceph_test_stress_watch
   test_stress_watch.cc
   )
-set_target_properties(ceph_test_stress_watch PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_stress_watch
   librados
   ${UNITTEST_LIBS}
index d5608f331d468599d3c6733cfb2fdb6429e3bc9c..837ec5434fa8b0c8de18d72e9aa135b5e6f21cc0 100644 (file)
@@ -3,8 +3,6 @@ add_executable(ceph_test_object_map
   test_object_map.cc
   KeyValueDBMemory.cc
   )
-set_target_properties(ceph_test_object_map PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 add_ceph_unittest(ceph_test_object_map)
 target_link_libraries(ceph_test_object_map
   os
@@ -19,8 +17,6 @@ target_link_libraries(ceph_test_object_map
 add_executable(ceph_test_keyvaluedb_atomicity
   test_keyvaluedb_atomicity.cc
   )
-set_target_properties(ceph_test_keyvaluedb_atomicity PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_keyvaluedb_atomicity
   os
   ceph-common
@@ -35,8 +31,6 @@ add_executable(ceph_test_keyvaluedb_iterators
   test_keyvaluedb_iterators.cc
   KeyValueDBMemory.cc
   )
-set_target_properties(ceph_test_keyvaluedb_iterators PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_keyvaluedb_iterators
   os
   ceph-common
index fa4a526afa0de157a3ba1624b3de1b3844d6023e..4ed22132f269bf69ed60e3727929bb0705ac9b92 100644 (file)
@@ -1,8 +1,6 @@
 add_executable(ceph_test_cls_hello
   test_cls_hello.cc
   )
-set_target_properties(ceph_test_cls_hello PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_hello
   librados
   global
index 6e99cdc5af0fb1e2ef445e8007fac9e410058580..3f2cad9c01f64204f45ecb6b423376192716cbcd 100644 (file)
@@ -2,8 +2,6 @@
 add_executable(ceph_test_cls_journal
   test_cls_journal.cc
   $<TARGET_OBJECTS:common_texttable_obj>)
-set_target_properties(ceph_test_cls_journal PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_journal
   cls_journal_client
   librados
index 75e3ead606720d254b88a883cc6400486d20c2f4..49214e17e68c396d06f430ac1628a22a79e6e05d 100644 (file)
@@ -1,8 +1,6 @@
 add_executable(ceph_test_cls_lock
   test_cls_lock.cc
   )
-set_target_properties(ceph_test_cls_lock PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_lock
   cls_lock_client
   librados
index b370645cec4c0f5144a069014d6be2353df3a8de..acbd31d6bd908a3f25e7f0b6ed1f6593e6c0b006 100644 (file)
@@ -1,8 +1,5 @@
 add_executable(ceph_test_cls_log
-  test_cls_log.cc
-  )
-set_target_properties(ceph_test_cls_log PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  test_cls_log.cc)
 target_link_libraries(ceph_test_cls_log
   librados
   cls_log_client
index 2ccb851cd89a479ad61d1702398023a9e8ae1d7a..1bc8c4cce6ee851b942537cad41d5c6cc2a73ae2 100644 (file)
@@ -1,8 +1,6 @@
 add_executable(ceph_test_cls_lua
   test_cls_lua.cc
 )
-set_target_properties(ceph_test_cls_lua PROPERTIES COMPILE_FLAGS
-    ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_lua
   cls_lua_client
   liblua
index a91137648effec8825e1a8a349182098bad54b59..b52d7f9894a509a71a527eada741b016b24992ad 100644 (file)
@@ -1,8 +1,6 @@
 # ceph_test_cls_numops
 add_executable(ceph_test_cls_numops 
   test_cls_numops.cc)
-set_target_properties(ceph_test_cls_numops PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_numops 
   librados 
   global
index 7afcf33b3bae6248075d087a5cd84ecdc665e3db..0e1175ac3d07bb75c5fd1ee1e34b72086a8cb299 100644 (file)
@@ -2,8 +2,6 @@
 add_executable(ceph_test_cls_rbd
   test_cls_rbd.cc
   $<TARGET_OBJECTS:common_texttable_obj>)
-set_target_properties(ceph_test_cls_rbd PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_rbd
   librbd
   cls_rbd_client
index ab036315d083292e5c0edb1ff5a34b435ac451f4..9983828456f4c1cd66194ea0721e3e4917cdfe9a 100644 (file)
@@ -2,8 +2,6 @@
 add_executable(ceph_test_cls_refcount
   test_cls_refcount.cc
   )
-set_target_properties(ceph_test_cls_refcount PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_refcount
   librados
   cls_refcount_client
index 3352db233cec15f896f5b57ccfeea49f81819682..ca53e9dfc7d22472242d7ba09e34a535544c0040 100644 (file)
@@ -2,8 +2,6 @@ if(${WITH_RADOSGW})
   add_executable(ceph_test_cls_rgw
     test_cls_rgw.cc
     )
-  set_target_properties(ceph_test_cls_rgw PROPERTIES COMPILE_FLAGS
-    ${UNITTEST_CXX_FLAGS})
   target_link_libraries(ceph_test_cls_rgw
     cls_rgw_client
     librados
index 2579b9c76b022967c1ff1c8a1ef56ac0f279bd96..d75971276c206f2526bcfcfcd9a47eea15bfcfe4 100644 (file)
@@ -1,8 +1,6 @@
 add_executable(ceph_test_cls_sdk
   test_cls_sdk.cc
   )
-set_target_properties(ceph_test_cls_sdk PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_sdk
   librados
   global
index 5f77979de0a2446edcb1101bdb0ff92057174ee8..91e7861005f49c0404138992d9b3f70440849a34 100644 (file)
@@ -2,8 +2,6 @@
 add_executable(ceph_test_cls_statelog
   test_cls_statelog.cc
   )
-set_target_properties(ceph_test_cls_statelog PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_statelog
   librados
   cls_statelog_client
index 24fabc933e0d70d5a5907c420a18a0c29b4de58b..7334ce43624d56c673a8359be3c3cd21b7083fe4 100644 (file)
@@ -2,8 +2,6 @@
 add_executable(ceph_test_cls_version
   test_cls_version.cc
   )
-set_target_properties(ceph_test_cls_version PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_cls_version
   librados
   cls_version_client
index e49e7f82ab6c26ec90a9c2242f11a171ad3d753d..2cd7cf2c98355e45f9a49ccbcd3649d4facd5f84 100644 (file)
@@ -165,7 +165,6 @@ target_link_libraries(unittest_erasure_code_example
   erasure_code
   ${UNITTEST_LIBS}
   )
-set_target_properties(unittest_erasure_code_example PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 
 include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/include)
 include_directories(SYSTEM ${CMAKE_SOURCE_DIR}/src/erasure-code//jerasure/gf-complete/include)
index 82a47f8c48bd5f0ea6a968f3fced5258b60f3f7f..ae29faacf863cda6199947f89737a0c30ff69798 100644 (file)
@@ -1,8 +1,6 @@
 #ceph_test_filestore
 add_executable(ceph_test_filestore 
   TestFileStore.cc)
-set_target_properties(ceph_test_filestore PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_filestore os global ${UNITTEST_LIBS})
 
 
index 1afa97c75b20f42027b0422a40eab2637e864721..213630e941c81d88f5544045ffac803ef451b2cb 100644 (file)
@@ -1,6 +1,6 @@
 add_library(journal_test_mock STATIC mock/MockJournaler.cc)
-set_target_properties(journal_test_mock PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+target_link_libraries(journal_test_mock
+  PUBLIC GMock::GMock)
 
 # unittest_journal
 set(unittest_journal_srcs
index 022f48191be4df934a57511dfbcb0a47ddb6fb31..41c2716de3ffe1c2aa720104391c1173a2eef7aa 100644 (file)
@@ -10,8 +10,6 @@ if(${WITH_CEPHFS})
     main.cc
     deleg.cc
   )
-  set_target_properties(ceph_test_libcephfs PROPERTIES COMPILE_FLAGS
-    ${UNITTEST_CXX_FLAGS})
   target_link_libraries(ceph_test_libcephfs
     ceph-common
     cephfs
@@ -26,8 +24,6 @@ if(${WITH_CEPHFS})
     test.cc
     access.cc
   )
-  set_target_properties(ceph_test_libcephfs_access PROPERTIES COMPILE_FLAGS
-    ${UNITTEST_CXX_FLAGS})
   target_link_libraries(ceph_test_libcephfs_access
     ceph-common
     cephfs
index 1c909ee1ce0f93d14e13eca21ebb4679ac6da5ff..33ac156f9d18c9b52972bd9dcc730c4fc9c1ee8c 100644 (file)
 # radostest
 add_library(libradostest_obj OBJECT test.cc)
+target_include_directories(libradostest_obj PRIVATE
+  $<TARGET_PROPERTY:GTest::GTest,INTERFACE_INCLUDE_DIRECTORIES>)
 set(libradostest_srcs 
   test_common.cc
   TestCase.cc)
 add_library(radostest STATIC
   ${libradostest_srcs}
   $<TARGET_OBJECTS:libradostest_obj>)
-target_link_libraries(radostest librados ceph-common json_spirit ${EXTRALIBS})
-set_target_properties(radostest PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
+target_link_libraries(radostest
+  GTest::GTest
+  librados
+  ceph-common
+  json_spirit
+  ${EXTRALIBS})
+
 
-# ceph_test_rados_api_cmd
 add_executable(ceph_test_rados_api_cmd
-  cmd.cc
-  )
-set_target_properties(ceph_test_rados_api_cmd PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  cmd.cc)
 target_link_libraries(ceph_test_rados_api_cmd
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_io
 add_executable(ceph_test_rados_api_io
-  io.cc
-  )
-set_target_properties(ceph_test_rados_api_io PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  io.cc)
 target_link_libraries(ceph_test_rados_api_io
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_c_write_operations
 add_executable(ceph_test_rados_api_c_write_operations
-  c_write_operations.cc
-  )
-set_target_properties(ceph_test_rados_api_c_write_operations PROPERTIES
-  COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
+  c_write_operations.cc)
 target_link_libraries(ceph_test_rados_api_c_write_operations
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_c_read_operations
 add_executable(ceph_test_rados_api_c_read_operations
-  c_read_operations.cc
-  )
-set_target_properties(ceph_test_rados_api_c_read_operations PROPERTIES COMPILE_FLAGS 
-  ${UNITTEST_CXX_FLAGS})
+  c_read_operations.cc)
 target_link_libraries(ceph_test_rados_api_c_read_operations
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_aio
 add_executable(ceph_test_rados_api_aio
-  aio.cc
-  )
-set_target_properties(ceph_test_rados_api_aio PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  aio.cc)
 target_link_libraries(ceph_test_rados_api_aio
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_asio
 add_executable(ceph_test_rados_api_asio asio.cc)
-set_target_properties(ceph_test_rados_api_asio PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_rados_api_asio global
   librados ${UNITTEST_LIBS})
 if(WITH_BOOST_CONTEXT)
   target_link_libraries(ceph_test_rados_api_asio Boost::coroutine Boost::context)
 endif()
 
-# ceph_test_rados_api_list
 add_executable(ceph_test_rados_api_list
   list.cc
-  $<TARGET_OBJECTS:unit-main>
-  )
-set_target_properties(ceph_test_rados_api_list PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  $<TARGET_OBJECTS:unit-main>)
 target_link_libraries(ceph_test_rados_api_list
   librados global ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_pool
 add_executable(ceph_test_rados_api_pool
-  pool.cc
-  )
-set_target_properties(ceph_test_rados_api_pool PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS}
-  )
+  pool.cc)
 target_link_libraries(ceph_test_rados_api_pool
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_stat
 add_executable(ceph_test_rados_api_stat
-  stat.cc
-  )
-set_target_properties(ceph_test_rados_api_stat PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  stat.cc)
 target_link_libraries(ceph_test_rados_api_stat
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_watch_notify
 add_executable(ceph_test_rados_api_watch_notify
-  watch_notify.cc
-  )
-set_target_properties(ceph_test_rados_api_watch_notify PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  watch_notify.cc)
 target_link_libraries(ceph_test_rados_api_watch_notify
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_cls
 add_executable(ceph_test_rados_api_cls
-  cls.cc
-  )
-set_target_properties(ceph_test_rados_api_cls PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  cls.cc)
 target_link_libraries(ceph_test_rados_api_cls
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_misc
 add_executable(ceph_test_rados_api_misc
   misc.cc
-  $<TARGET_OBJECTS:unit-main>
-  )
-set_target_properties(ceph_test_rados_api_misc PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  $<TARGET_OBJECTS:unit-main>)
 target_link_libraries(ceph_test_rados_api_misc
   librados global ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_lock
 add_executable(ceph_test_rados_api_lock
-  lock.cc
-  )
-set_target_properties(ceph_test_rados_api_lock PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  lock.cc)
 target_link_libraries(ceph_test_rados_api_lock
   librados ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_service
 add_executable(ceph_test_rados_api_service
-  service.cc
-  )
-set_target_properties(ceph_test_rados_api_service PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  service.cc)
 target_link_libraries(ceph_test_rados_api_service
   librados global ${UNITTEST_LIBS} radostest)
 
-# ceph_test_rados_api_tier
 add_executable(ceph_test_rados_api_tier
   tier.cc
-  $<TARGET_OBJECTS:unit-main>
-  )
-set_target_properties(ceph_test_rados_api_tier PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  $<TARGET_OBJECTS:unit-main>)
 target_link_libraries(ceph_test_rados_api_tier
   librados global ${UNITTEST_LIBS} Boost::system radostest)
 
-# ceph_test_rados_api_snapshots
 add_executable(ceph_test_rados_api_snapshots
-  snapshots.cc
-  )
-set_target_properties(ceph_test_rados_api_snapshots PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  snapshots.cc)
 target_link_libraries(ceph_test_rados_api_snapshots
   librados ${UNITTEST_LIBS} radostest)
 
index b328acb31bd789897cbaf135c2712328ca7c68f6..79dd6c537140c92d44ab067a4847e65829219b93 100644 (file)
@@ -1,15 +1,13 @@
 add_library(rados_striper_test STATIC TestCase.cc)
-target_link_libraries(rados_striper_test radostest)
-set_target_properties(rados_striper_test PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+target_link_libraries(rados_striper_test
+  radostest
+  GTest::GTest)
 
 add_executable(ceph_test_rados_striper_api_striping
   striping.cc
   )
 target_link_libraries(ceph_test_rados_striper_api_striping librados radosstriper
   ${UNITTEST_LIBS} rados_striper_test)
-set_target_properties(ceph_test_rados_striper_api_striping PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 install(TARGETS ceph_test_rados_striper_api_striping
   DESTINATION ${CMAKE_INSTALL_BINDIR})
 
@@ -17,8 +15,6 @@ add_executable(ceph_test_rados_striper_api_io
   io.cc)
 target_link_libraries(ceph_test_rados_striper_api_io librados radosstriper
   ${UNITTEST_LIBS} rados_striper_test)
-set_target_properties(ceph_test_rados_striper_api_io PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 install(TARGETS ceph_test_rados_striper_api_io
   DESTINATION ${CMAKE_INSTALL_BINDIR})
 
@@ -26,7 +22,5 @@ add_executable(ceph_test_rados_striper_api_aio
   aio.cc)
 target_link_libraries(ceph_test_rados_striper_api_aio librados radosstriper
   ${UNITTEST_LIBS} rados_striper_test)
-set_target_properties(ceph_test_rados_striper_api_aio PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 install(TARGETS ceph_test_rados_striper_api_aio
   DESTINATION ${CMAKE_INSTALL_BINDIR})
index 2c685849259df4246a9daa1c527d86ca91c8b855..4c58e997458b61bd47e8378b34a27564234cc946 100644 (file)
@@ -15,15 +15,17 @@ set(librbd_test
   journal/test_Entries.cc
   journal/test_Replay.cc)
 add_library(rbd_test STATIC ${librbd_test})
-target_link_libraries(rbd_test PRIVATE Boost::thread)
-set_target_properties(rbd_test PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
+target_link_libraries(rbd_test PRIVATE
+  Boost::thread
+  GMock::GMock
+  GTest::GTest)
 
 set(librbd_test_mock_srcs
   mock/MockImageCtx.cc
   mock/MockJournal.cc)
 add_library(rbd_test_mock STATIC ${librbd_test_mock_srcs})
-set_target_properties(rbd_test_mock PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+target_link_libraries(rbd_test_mock PUBLIC
+  GMock::GMock)
 
 # unittest_librbd
 # doesn't use add_ceph_test because it is called by run-rbd-unit-tests.sh
@@ -89,8 +91,6 @@ add_executable(unittest_librbd
   ${unittest_librbd_srcs}
   $<TARGET_OBJECTS:common_texttable_obj>)
 target_compile_definitions(unittest_librbd PUBLIC "-DTEST_LIBRBD_INTERNALS")
-set_target_properties(unittest_librbd PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(unittest_librbd
   cls_rbd
   cls_rbd_client
@@ -127,8 +127,6 @@ target_link_libraries(ceph_test_librbd
   ${UNITTEST_LIBS}
   radostest)
 target_compile_definitions(ceph_test_librbd PUBLIC "-DTEST_LIBRBD_INTERNALS")
-set_target_properties(ceph_test_librbd PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 
 add_executable(ceph_test_librbd_api
   test_support.cc
@@ -140,8 +138,6 @@ target_link_libraries(ceph_test_librbd_api
   librbd
   librados
   ${UNITTEST_LIBS})
-set_target_properties(ceph_test_librbd_api PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 
 add_executable(ceph_test_librbd_fsx
   fsx.cc
index 16374308e4fd633d5eaa7c7ab57c67155fabd5e8..53b57dfe4d27d8b248a0b7a92490db9e616db765 100644 (file)
@@ -17,8 +17,6 @@ add_executable(ceph_test_mon_msg
   test-mon-msg.cc
   )
 target_link_libraries(ceph_test_mon_msg os osdc global ${UNITTEST_LIBS})
-set_target_properties(ceph_test_mon_msg PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 
 # unittest_mon_moncap
 add_executable(unittest_mon_moncap
index 6222087c464bf8990974e87ca028142e63a98bdf..1f3e85d99da0238b47e795dcb9da5372e49be253 100644 (file)
@@ -3,16 +3,12 @@ add_executable(ceph_test_async_driver
   test_async_driver.cc
   $<TARGET_OBJECTS:unit-main>
   )
-set_target_properties(ceph_test_async_driver PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_async_driver os global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${UNITTEST_LIBS})
 
 # ceph_test_msgr
 add_executable(ceph_test_msgr
   test_msgr.cc
   )
-set_target_properties(ceph_test_msgr PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_msgr os global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${UNITTEST_LIBS})
 
 # ceph_test_async_networkstack
@@ -20,20 +16,14 @@ add_executable(ceph_test_async_networkstack
   test_async_networkstack.cc
   $<TARGET_OBJECTS:unit-main>
   )
-set_target_properties(ceph_test_async_networkstack PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_async_networkstack global ${CRYPTO_LIBS} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${UNITTEST_LIBS})
 
 #ceph_perf_msgr_server
 add_executable(ceph_perf_msgr_server perf_msgr_server.cc)
-set_target_properties(ceph_perf_msgr_server PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_perf_msgr_server os global ${UNITTEST_LIBS})
 
 #ceph_perf_msgr_client
 add_executable(ceph_perf_msgr_client perf_msgr_client.cc)
-set_target_properties(ceph_perf_msgr_client PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_perf_msgr_client os global ${UNITTEST_LIBS})
 
 # test_userspace_event
@@ -41,9 +31,7 @@ if(HAVE_DPDK)
   add_executable(ceph_test_userspace_event
     test_userspace_event.cc
     $<TARGET_OBJECTS:unit-main>)
-set_target_properties(ceph_test_userspace_event PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
-target_link_libraries(ceph_test_userspace_event
+  target_link_libraries(ceph_test_userspace_event
     global
     ${CMAKE_DL_LIBS}
     ${UNITTEST_LIBS})
index 06f90727474dff6680a767b9a246ceddf426b17c..506f3f6e5e38ff0ce1d0e3d4d078c899f17e0209 100644 (file)
@@ -1,23 +1,16 @@
-#ceph_perf_objectstore
 add_executable(ceph_perf_objectstore 
-  ObjectStoreTransactionBenchmark.cc
-  )
-set_target_properties(ceph_perf_objectstore PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  ObjectStoreTransactionBenchmark.cc)
 target_link_libraries(ceph_perf_objectstore os osdc global ${UNITTEST_LIBS})
 install(TARGETS ceph_perf_objectstore
   DESTINATION bin)
 
-#ceph_test_objectstore
 add_library(store_test_fixture OBJECT store_test_fixture.cc)
-set_target_properties(store_test_fixture PROPERTIES
-  COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
+target_include_directories(store_test_fixture PRIVATE
+  $<TARGET_PROPERTY:GTest::GTest,INTERFACE_INCLUDE_DIRECTORIES>)
 
 add_executable(ceph_test_objectstore
   store_test.cc
   $<TARGET_OBJECTS:store_test_fixture>)
-set_target_properties(ceph_test_objectstore PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_objectstore
   os
   ceph-common
@@ -30,12 +23,8 @@ target_link_libraries(ceph_test_objectstore
 install(TARGETS ceph_test_objectstore
   DESTINATION ${CMAKE_INSTALL_BINDIR})
 
-#ceph_test_keyvaluedb
 add_executable(ceph_test_keyvaluedb
-  test_kv.cc
-  )
-set_target_properties(ceph_test_keyvaluedb PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  test_kv.cc)
 target_link_libraries(ceph_test_keyvaluedb
   os
   ceph-common
@@ -108,7 +97,6 @@ if(WITH_BLUESTORE)
     Allocator_bench.cc
     $<TARGET_OBJECTS:unit-main>
     )
-  set_target_properties(unittest_alloc_bench PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
   target_link_libraries(unittest_alloc_bench ${UNITTEST_LIBS} os global)
 
   add_executable(unittest_fastbmap_allocator
@@ -118,10 +106,6 @@ if(WITH_BLUESTORE)
   add_ceph_unittest(unittest_fastbmap_allocator)
   target_link_libraries(unittest_fastbmap_allocator os global)
 
-  set_target_properties(unittest_fastbmap_allocator PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
-
-  # unittest_bluefs
   add_executable(unittest_bluefs
     test_bluefs.cc
     )
index a86dca523efeca7a5a8c562161d9e2453dadd42c..b9ecbb1beafc600376888ba61858ee3365619ca1 100644 (file)
@@ -11,8 +11,8 @@ set(rbd_mirror_test_srcs
   image_map/test_Policy.cc
   )
 add_library(rbd_mirror_test STATIC ${rbd_mirror_test_srcs})
-set_target_properties(rbd_mirror_test PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+target_link_libraries(rbd_mirror_test
+  GTest::GTest)
 
 add_executable(unittest_rbd_mirror
   test_main.cc
@@ -40,8 +40,7 @@ add_executable(unittest_rbd_mirror
   pool_watcher/test_mock_RefreshImagesRequest.cc
   )
 add_ceph_unittest(unittest_rbd_mirror)
-set_target_properties(unittest_rbd_mirror PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+
 add_dependencies(unittest_rbd_mirror
   cls_journal
   cls_lock
@@ -69,8 +68,7 @@ target_link_libraries(unittest_rbd_mirror
 add_executable(ceph_test_rbd_mirror
   test_main.cc
   )
-set_target_properties(ceph_test_rbd_mirror PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+
 target_link_libraries(ceph_test_rbd_mirror
   rbd_mirror_test
   rbd_mirror_internal
@@ -88,8 +86,6 @@ target_link_libraries(ceph_test_rbd_mirror
 
 add_executable(ceph_test_rbd_mirror_random_write
   random_write.cc)
-set_target_properties(ceph_test_rbd_mirror_random_write PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 target_link_libraries(ceph_test_rbd_mirror_random_write
   librbd librados global)
 
index a51dade96740ce17b5ca91ad5714ca30a89e2c4d..b050b4c7b83373850288ebe8bd1093053df31579 100644 (file)
@@ -47,12 +47,8 @@ target_link_libraries(ceph_test_rgw_manifest
   ${EXPAT_LIBRARIES}
   ${CMAKE_DL_LIBS}
   ${UNITTEST_LIBS}
-  ${CRYPTO_LIBS}
-  )
-set_target_properties(ceph_test_rgw_manifest PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
+  ${CRYPTO_LIBS})
 
-# ceph_test_rgw_obj
 set(test_rgw_obj_srcs test_rgw_obj.cc)
 add_executable(ceph_test_rgw_obj
   ${test_rgw_obj_srcs}
@@ -75,16 +71,12 @@ target_link_libraries(ceph_test_rgw_obj
   ${UNITTEST_LIBS}
   ${CRYPTO_LIBS}
   )
-set_target_properties(ceph_test_rgw_obj PROPERTIES COMPILE_FLAGS
-  ${UNITTEST_CXX_FLAGS})
 
-# ceph_test_rgw_crypto
 set(test_rgw_crypto_srcs test_rgw_crypto.cc)
 add_executable(unittest_rgw_crypto
   ${test_rgw_crypto_srcs}
   )
 add_ceph_unittest(unittest_rgw_crypto)
-
 target_link_libraries(unittest_rgw_crypto
   rgw_a
   cls_rgw_client
@@ -102,9 +94,7 @@ target_link_libraries(unittest_rgw_crypto
   ${UNITTEST_LIBS}
   ${CRYPTO_LIBS}
   )
-set_target_properties(unittest_rgw_crypto PROPERTIES COMPILE_FLAGS$ {UNITTEST_CXX_FLAGS})
 
-# ceph_test_rgw_iam_policy
 add_executable(unittest_rgw_iam_policy test_rgw_iam_policy.cc)
 add_ceph_unittest(unittest_rgw_iam_policy)
 target_link_libraries(unittest_rgw_iam_policy
@@ -124,8 +114,6 @@ target_link_libraries(unittest_rgw_iam_policy
   ${UNITTEST_LIBS}
   ${CRYPTO_LIBS}
   )
-set_target_properties(unittest_rgw_iam_policy PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 
-# unitttest_rgw_string
 add_executable(unittest_rgw_string test_rgw_string.cc)
 add_ceph_unittest(unittest_rgw_string)