This commit is contained in:
greg
2019-03-24 10:35:01 -04:00
parent 087e72d76b
commit 272f174a12
2 changed files with 16 additions and 25 deletions
+2 -11
View File
@@ -42,23 +42,14 @@ option(PHMAP_BUILD_TESTS "Whether or not to build the tests" OFF)
option(PHMAP_BUILD_EXAMPLES "Whether or not to build the examples" OFF)
if (PHMAP_BUILD_TESTS)
#add_subdirectory(tests)
include(cmake/DownloadGTest.cmake)
check_target(gtest)
check_target(gtest_main)
check_target(gmock)
absl_cc_test(
NAME
flat_hash_set_test
SRCS
"tests/flat_hash_set_test.cc"
COPTS
"-DUNORDERED_SET_CXX17"
DEPS
gmock_main
)
phmap_cc_test(NAME flat_hash_set SRCS "tests/flat_hash_set_test.cc"
COPTS "-DUNORDERED_SET_CXX17" DEPS gmock_main)
endif()
+14 -14
View File
@@ -1,7 +1,7 @@
#set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set(ABSL_IDE_FOLDER Abseil)
set(PHMAP_IDE_FOLDER Abseil)
# absl_cc_test(
# phmap_cc_test(
# NAME
# awesome_test
# SRCS
@@ -11,35 +11,35 @@ set(ABSL_IDE_FOLDER Abseil)
# gmock
# gtest_main
# )
function(absl_cc_test)
cmake_parse_arguments(ABSL_CC_TEST
function(phmap_cc_test)
cmake_parse_arguments(PHMAP_CC_TEST
""
"NAME"
"SRCS;COPTS;DEFINES;LINKOPTS;DEPS"
${ARGN}
)
set(_NAME "absl_${ABSL_CC_TEST_NAME}")
set(_NAME "test_${PHMAP_CC_TEST_NAME}")
add_executable(${_NAME} "")
target_sources(${_NAME} PRIVATE ${ABSL_CC_TEST_SRCS})
target_sources(${_NAME} PRIVATE ${PHMAP_CC_TEST_SRCS})
target_include_directories(${_NAME}
PUBLIC ${ABSL_COMMON_INCLUDE_DIRS}
PUBLIC ${PHMAP_COMMON_INCLUDE_DIRS}
PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
)
target_compile_definitions(${_NAME}
PUBLIC ${ABSL_CC_TEST_DEFINES}
PUBLIC ${PHMAP_CC_TEST_DEFINES}
)
target_compile_options(${_NAME}
PRIVATE ${ABSL_CC_TEST_COPTS}
PRIVATE ${PHMAP_CC_TEST_COPTS}
)
target_link_libraries(${_NAME}
PUBLIC ${ABSL_CC_TEST_DEPS}
PRIVATE ${ABSL_CC_TEST_LINKOPTS}
PUBLIC ${PHMAP_CC_TEST_DEPS}
PRIVATE ${PHMAP_CC_TEST_LINKOPTS}
)
# Add all Abseil targets to a a folder in the IDE for organization.
set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}/test)
set_property(TARGET ${_NAME} PROPERTY FOLDER ${PHMAP_IDE_FOLDER}/test)
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${ABSL_CXX_STANDARD})
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${PHMAP_CXX_STANDARD})
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
add_test(NAME ${_NAME} COMMAND ${_NAME})
@@ -49,7 +49,7 @@ endfunction()
function(check_target my_target)
if(NOT TARGET ${my_target})
message(FATAL_ERROR " ABSL: compiling absl requires a ${my_target} CMake target in your project,
message(FATAL_ERROR " PHMAP: compiling phmap tests requires a ${my_target} CMake target in your project,
see CMake/README.md for more details")
endif(NOT TARGET ${my_target})
endfunction()