Skip to content

Commit

Permalink
Use modern CMake to locate (and link) GTest
Browse files Browse the repository at this point in the history
Change-Id: I28aec9f8c6a79738b80345f7f62267f5d5da6a23
Reviewed-on: http://review.couchbase.org/c/kv_engine/+/161337
Tested-by: Trond Norbye <trond.norbye@couchbase.com>
Reviewed-by: Dave Rigby <daver@couchbase.com>
  • Loading branch information
trondn committed Sep 13, 2021
1 parent bbcdc98 commit e1fab5c
Show file tree
Hide file tree
Showing 24 changed files with 58 additions and 58 deletions.
12 changes: 9 additions & 3 deletions CMakeLists.txt
Expand Up @@ -139,9 +139,15 @@ if (CB_PCH)
# Need to give the target a SOURCE to make cmake happy so just including
# an empty .cc file.
add_library(${pch_lib} OBJECT precompiled_headers.cc)
target_link_libraries(${pch_lib} PUBLIC Folly::headers
PRIVATE nlohmann_json::nlohmann_json)
target_include_directories(${pch_lib} PUBLIC ${gtest_SOURCE_DIR}/include)
target_link_libraries(${pch_lib}
PUBLIC
Folly::headers
PRIVATE
nlohmann_json::nlohmann_json
GTest::gtest)
# Hmm.. If I remove the target_include_directories I get all sort of
# other errors. Just point to the project include directory for now..
target_include_directories(${pch_lib} PUBLIC ${Memcached_SOURCE_DIR}/include)
target_precompile_headers(${pch_lib} PUBLIC precompiled_headers.h)
endforeach()
set_property(TARGET kv_pch_fpic PROPERTY POSITION_INDEPENDENT_CODE 1)
Expand Down
4 changes: 2 additions & 2 deletions auditd/generator/CMakeLists.txt
Expand Up @@ -62,8 +62,8 @@ kv_enable_pch(audit_generator_unit_test)
add_sanitizers(audit_generator_unit_test)
target_link_libraries(audit_generator_unit_test
PRIVATE
gtest
gtest_main
GTest::gtest
GTest::gtest_main
mcd_util
platform)
add_test(NAME audit_generator_unit_test
Expand Down
6 changes: 3 additions & 3 deletions auditd/tests/CMakeLists.txt
Expand Up @@ -11,8 +11,8 @@ target_link_libraries(memcached_audit_test PRIVATE
memcached_logger
mcd_time
platform
gtest
gtest_main
GTest::gtest
GTest::gtest_main
mcd_util)
add_test(NAME memcached-audit-test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand All @@ -22,7 +22,7 @@ add_sanitizers(memcached_audit_test)
cb_add_test_executable(memcached_auditd_tests testauditd.cc)
kv_enable_pch(memcached_auditd_tests)
target_link_libraries(memcached_auditd_tests PRIVATE
auditd memcached_logger mcd_util mcd_time platform gtest)
auditd memcached_logger mcd_util mcd_time platform GTest::gtest)
add_dependencies(memcached_auditd_tests generate_audit_descriptors)
add_sanitizers(memcached_auditd_tests)
add_test(NAME memcached-auditd-test
Expand Down
2 changes: 1 addition & 1 deletion cbcrypto/CMakeLists.txt
Expand Up @@ -22,7 +22,7 @@ kv_enable_pch(cbcrypto_test)
target_link_libraries(cbcrypto_test PRIVATE
cbcrypto
platform
gtest gtest_main)
GTest::gtest GTest::gtest_main)

add_test(NAME cbcrypto-test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand Down
4 changes: 2 additions & 2 deletions cbsasl/CMakeLists.txt
Expand Up @@ -44,8 +44,8 @@ target_link_libraries(cbsasl_unit_test
PRIVATE
cbsasl
cbcrypto
gtest
gtest_main
GTest::gtest
GTest::gtest_main
platform)
add_test(NAME cbsasl_unit_test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand Down
2 changes: 1 addition & 1 deletion cluster_framework/CMakeLists.txt
Expand Up @@ -10,6 +10,6 @@ target_link_libraries(cluster_framework PUBLIC
mc_client_connection
mcd_test_util
platform
gtest)
GTest::gtest)
cb_enable_unity_build(cluster_framework)
kv_enable_pch(cluster_framework)
12 changes: 6 additions & 6 deletions daemon/CMakeLists.txt
Expand Up @@ -263,11 +263,11 @@ cb_add_test_executable(client_cert_config_test
client_cert_config.cc
client_cert_config.h)
target_link_libraries(client_cert_config_test PRIVATE
gtest
gtest_main
platform
mcd_util
${OPENSSL_LIBRARIES})
GTest::gtest
GTest::gtest_main
platform
mcd_util
${OPENSSL_LIBRARIES})
add_test(NAME client_cert_config_test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND client_cert_config_test)
Expand All @@ -292,7 +292,7 @@ cb_enable_unity_build(memcached_unit_tests)
add_sanitizers(memcached_unit_tests)
target_link_libraries(memcached_unit_tests PRIVATE
memcached_daemon
gtest)
GTest::gtest)
add_test(NAME memcached_unit_tests
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND memcached_unit_tests)
Expand Down
10 changes: 3 additions & 7 deletions engines/ep/CMakeLists.txt
Expand Up @@ -72,10 +72,6 @@ IF (EP_USE_MAGMA)
list(APPEND EP_STORAGE_LIBS ep-engine_magma_common)
ENDIF (EP_USE_MAGMA)

INCLUDE_DIRECTORIES(AFTER SYSTEM
${gtest_SOURCE_DIR}/include
${gmock_SOURCE_DIR}/include)

# For debugging without compiler optimizations uncomment line below..
#SET (CMAKE_BUILD_TYPE DEBUG)

Expand Down Expand Up @@ -510,7 +506,7 @@ endif()

add_library(ep_mocks OBJECT ${MOCK_SOURCE})
set_property(TARGET ep_mocks PROPERTY POSITION_INDEPENDENT_CODE 1)
target_link_libraries(ep_mocks PUBLIC platform spdlog)
target_link_libraries(ep_mocks PUBLIC platform spdlog GTest::gmock)
add_sanitizers(ep_mocks)
cb_enable_unity_build(ep_mocks)
kv_enable_pch(ep_mocks)
Expand Down Expand Up @@ -556,8 +552,8 @@ TARGET_LINK_LIBRARIES(ep_engine_benchmarks
engine_utilities
ep-engine_collections
mcd_executor
gtest
gmock
GTest::gtest
GTest::gmock
hdr_histogram_static
JSON_checker
mcbp
Expand Down
12 changes: 6 additions & 6 deletions engines/ep/tests/CMakeLists.txt
Expand Up @@ -137,8 +137,8 @@ target_link_libraries(ep-engine_ep_unit_tests PRIVATE
engine_utilities
ep-engine_collections
mcd_executor
gtest
gmock
GTest::gtest
GTest::gmock
hdr_histogram_static
JSON_checker
memcached_logger
Expand Down Expand Up @@ -176,9 +176,9 @@ TARGET_INCLUDE_DIRECTORIES(ep-engine_couch-fs-stats_test
${Couchstore_SOURCE_DIR}
${Couchstore_SOURCE_DIR}/src)
target_link_libraries(ep-engine_couch-fs-stats_test PRIVATE
gtest
gtest_main
gmock
GTest::gtest
GTest::gtest_main
GTest::gmock
mcd_util
platform
phosphor)
Expand All @@ -192,7 +192,7 @@ cb_add_test_executable(ep-engine_string_utils_test
module_tests/string_utils_test.cc
${EventuallyPersistentEngine_SOURCE_DIR}/src/string_utils.cc)
kv_enable_pch(ep-engine_string_utils_test)
target_link_libraries(ep-engine_string_utils_test PRIVATE gtest gtest_main platform)
target_link_libraries(ep-engine_string_utils_test PRIVATE GTest::gtest GTest::gtest_main platform)

ADD_TEST(NAME ep-engine_couch-fs-stats_test COMMAND ep-engine_couch-fs-stats_test)
gtest_discover_tests(ep-engine_ep_unit_tests
Expand Down
2 changes: 1 addition & 1 deletion logger/CMakeLists.txt
Expand Up @@ -15,7 +15,7 @@ cb_add_test_executable(memcached_logger_test
logger_test.cc
logger_test_fixture.cc)
kv_enable_pch(memcached_logger_test)
target_link_libraries(memcached_logger_test PRIVATE gtest gtest_main mcd_util memcached_logger platform)
target_link_libraries(memcached_logger_test PRIVATE GTest::gtest GTest::gtest_main mcd_util memcached_logger platform)
target_include_directories(memcached_logger_test INTERFACE PRIVATE ${Platform_SOURCE_DIR}/external)
add_sanitizers(memcached_logger_test)
add_test(NAME memcached-spdlogger-test
Expand Down
4 changes: 2 additions & 2 deletions programs/CMakeLists.txt
Expand Up @@ -11,8 +11,8 @@ kv_enable_pch(memcached-hostutils-test)
target_link_libraries(memcached-hostutils-test PRIVATE
cbsocket
platform
gtest
gtest_main)
GTest::gtest
GTest::gtest_main)
add_test(NAME memcached-hostutils-test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND memcached-hostutils-test)
Expand Down
4 changes: 2 additions & 2 deletions protocol/mcbp/CMakeLists.txt
Expand Up @@ -58,8 +58,8 @@ kv_enable_pch(mcbp_unit_tests)
target_link_libraries(mcbp_unit_tests
PRIVATE
Folly::headers
gtest
gtest_main
GTest::gtest
GTest::gtest_main
mcbp)
add_test(NAME mcbp_unit_tests
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand Down
2 changes: 1 addition & 1 deletion rbac/CMakeLists.txt
Expand Up @@ -15,7 +15,7 @@ cb_add_test_executable(memcached_rbac_test
privilege_database_test.cc)
kv_enable_pch(memcached_rbac_test)
target_link_libraries(memcached_rbac_test
PRIVATE Folly::headers memcached_rbac gtest gtest_main)
PRIVATE Folly::headers memcached_rbac GTest::gtest GTest::gtest_main)
add_test(NAME memcached-rbac-test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND memcached_rbac_test)
Expand Down
2 changes: 1 addition & 1 deletion tests/dockey/CMakeLists.txt
Expand Up @@ -2,7 +2,7 @@ cb_add_test_executable(memcached_dockey_test
dockey_test.cc)
kv_enable_pch(memcached_dockey_test)
target_link_libraries(memcached_dockey_test
PRIVATE Folly::headers mcbp gtest gtest_main)
PRIVATE Folly::headers mcbp GTest::gtest GTest::gtest_main)
add_test(NAME memcached_dockey_test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND memcached_dockey_test)
3 changes: 1 addition & 2 deletions tests/engine_error/CMakeLists.txt
@@ -1,8 +1,7 @@
INCLUDE_DIRECTORIES(AFTER SYSTEM ${gtest_SOURCE_DIR}/include)
cb_add_test_executable(memcached-engine-error-test engine_error_test.cc)
kv_enable_pch(memcached-engine-error-test)
target_link_libraries(memcached-engine-error-test
PRIVATE Folly::headers engine_utilities gtest gtest_main)
PRIVATE Folly::headers engine_utilities GTest::gtest GTest::gtest_main)
ADD_TEST(NAME memcached-engine-error-test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND memcached-engine-error-test)
2 changes: 1 addition & 1 deletion tests/histograms/CMakeLists.txt
Expand Up @@ -4,5 +4,5 @@ target_include_directories(histo-test-bench
SYSTEM PRIVATE ${benchmark_SOURCE_DIR}/include)
target_link_libraries(histo-test-bench PRIVATE benchmark
hdr_histogram_static
mcd_util memcached_daemon gtest)
mcd_util memcached_daemon GTest::gtest)
add_sanitizers(histo-test-bench)
3 changes: 1 addition & 2 deletions tests/mcbp/CMakeLists.txt
@@ -1,4 +1,3 @@
include_directories(AFTER SYSTEM ${gtest_SOURCE_DIR}/include)
cb_add_test_executable(memcached_mcbp_test
mcbp_frame_extra.cc
mcbp_dcp_test.cc
Expand All @@ -22,7 +21,7 @@ target_link_libraries(memcached_mcbp_test
PRIVATE
memcached_daemon
platform
gtest)
GTest::gtest)
add_sanitizers(memcached_mcbp_test)
cb_enable_unity_build(memcached_mcbp_test)
kv_enable_pch(memcached_mcbp_test)
Expand Down
4 changes: 2 additions & 2 deletions tests/statistics/CMakeLists.txt
Expand Up @@ -3,8 +3,8 @@ cb_add_test_executable(memcached_statistics_test
kv_enable_pch(memcached_statistics_test)
target_link_libraries(memcached_statistics_test
PRIVATE
gmock
gtest_main
GTest::gmock
GTest::gtest_main
memcached_daemon
memcached_logger
statistics)
Expand Down
8 changes: 4 additions & 4 deletions tests/testapp/CMakeLists.txt
Expand Up @@ -12,8 +12,8 @@ target_link_libraries(testapp_auth_provider PUBLIC platform)
target_link_libraries(testapp_auth_provider_test
PRIVATE
cbsasl
gtest
gtest_main
GTest::gtest
GTest::gtest_main
mcbp)

add_test(NAME testapp_auth_provider_test
Expand Down Expand Up @@ -93,8 +93,8 @@ target_link_libraries(memcached_testapp PRIVATE
cbsasl
platform
platform_cb_malloc_arena
gtest
gtest_main
GTest::gtest
GTest::gtest_main
${SNAPPY_LIBRARIES}
${LIBEVENT_LIBRARIES}
${COUCHBASE_NETWORK_LIBS})
Expand Down
4 changes: 2 additions & 2 deletions tests/unsigned_leb128/CMakeLists.txt
Expand Up @@ -5,9 +5,9 @@ cb_add_test_executable(memcached_unsigned_leb128_bench
unsigned_leb128_bench.cc)
kv_enable_pch(memcached_unsigned_leb128_bench)
target_link_libraries(memcached_unsigned_leb128_test PRIVATE
platform_headers gtest gtest_main)
platform_headers GTest::gtest GTest::gtest_main)
target_link_libraries(memcached_unsigned_leb128_bench PRIVATE
platform_headers benchmark gtest gtest_main)
platform_headers benchmark GTest::gtest GTest::gtest_main)

add_test(NAME memcached_unsigned_leb128_test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand Down
4 changes: 2 additions & 2 deletions testsuite/basic/CMakeLists.txt
Expand Up @@ -6,8 +6,8 @@ add_sanitizers(memcached-basic-engine-tests)
target_link_libraries(memcached-basic-engine-tests PRIVATE
mock_server
memcached_daemon
gtest
gtest_main)
GTest::gtest
GTest::gtest_main)

add_test(NAME memcached-basic-engine-tests
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand Down
2 changes: 1 addition & 1 deletion time/CMakeLists.txt
Expand Up @@ -8,7 +8,7 @@ kv_enable_pch(mcd_time)
cb_add_test_executable(memcached_timestamp_test timestamp_test.cc
${PROJECT_SOURCE_DIR}/include/memcached/isotime.h)
kv_enable_pch(memcached_timestamp_test)
target_link_libraries(memcached_timestamp_test PRIVATE mcd_time platform gtest gtest_main)
target_link_libraries(memcached_timestamp_test PRIVATE mcd_time platform GTest::gtest GTest::gtest_main)
ADD_TEST(NAME memcached-timestamp-test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
COMMAND memcached_timestamp_test)
2 changes: 1 addition & 1 deletion tracing/CMakeLists.txt
Expand Up @@ -7,7 +7,7 @@ kv_enable_pch(mcd_tracing)
cb_add_test_executable(tracing_test tracing_test.cc)
kv_enable_pch(tracing_test)
target_link_libraries(tracing_test
PRIVATE mcd_tracing platform gtest gtest_main )
PRIVATE mcd_tracing platform GTest::gtest GTest::gtest_main )
add_sanitizers(tracing_test)
add_test(NAME tracing-test
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand Down
6 changes: 3 additions & 3 deletions utilities/CMakeLists.txt
Expand Up @@ -76,9 +76,9 @@ kv_enable_pch(utilities_testapp)
target_link_libraries(utilities_testapp PRIVATE
mcd_util
platform
gtest
gtest_main
gmock)
GTest::gtest
GTest::gtest_main
GTest::gmock)
add_sanitizers(utilities_testapp)
add_test(NAME memcached-utilities-tests
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
Expand Down

0 comments on commit e1fab5c

Please sign in to comment.