Files

60 lines
1.8 KiB
CMake
Raw Permalink Normal View History

2019-03-23 23:26:11 -04:00
#set_property(GLOBAL PROPERTY USE_FOLDERS ON)
2019-04-22 16:23:17 -04:00
set(PHMAP_IDE_FOLDER phmap)
2019-03-23 23:26:11 -04:00
2019-03-31 14:35:16 -04:00
# -------------------------------------------------------------
# phmap_cc_test(NAME awesome_test
# SRCS "awesome_test.cc"
# DEPS phmap::awesome gmock gtest_main)
# -------------------------------------------------------------
2019-03-24 10:35:01 -04:00
function(phmap_cc_test)
cmake_parse_arguments(PHMAP_CC_TEST
2019-03-23 23:26:11 -04:00
""
"NAME"
"SRCS;COPTS;CWOPTS;CLOPTS;DEFINES;LINKOPTS;DEPS"
2019-03-23 23:26:11 -04:00
${ARGN}
)
2019-03-24 10:35:01 -04:00
set(_NAME "test_${PHMAP_CC_TEST_NAME}")
add_executable(${_NAME} ${PHMAP_CC_TEST_SRCS})
2019-03-23 23:26:11 -04:00
target_include_directories(${_NAME}
2019-03-24 10:35:01 -04:00
PUBLIC ${PHMAP_COMMON_INCLUDE_DIRS}
2019-03-23 23:26:11 -04:00
PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
)
target_compile_definitions(${_NAME}
2019-03-24 10:35:01 -04:00
PUBLIC ${PHMAP_CC_TEST_DEFINES}
2019-03-23 23:26:11 -04:00
)
if(MSVC)
target_compile_options(${_NAME}
PRIVATE ${PHMAP_CC_TEST_CWOPTS} /W4 /Zc:__cplusplus /std:c++latest
)
else()
target_compile_options(${_NAME}
PRIVATE ${PHMAP_CC_TEST_CLOPTS}
)
endif()
2019-03-23 23:26:11 -04:00
target_compile_options(${_NAME}
2019-03-24 10:35:01 -04:00
PRIVATE ${PHMAP_CC_TEST_COPTS}
2019-03-23 23:26:11 -04:00
)
target_link_libraries(${_NAME}
2019-03-24 10:35:01 -04:00
PUBLIC ${PHMAP_CC_TEST_DEPS}
PRIVATE ${PHMAP_CC_TEST_LINKOPTS}
2019-03-23 23:26:11 -04:00
)
# Add all Abseil targets to a a folder in the IDE for organization.
2019-03-24 10:35:01 -04:00
set_property(TARGET ${_NAME} PROPERTY FOLDER ${PHMAP_IDE_FOLDER}/test)
2019-03-23 23:26:11 -04:00
2019-03-24 10:35:01 -04:00
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD ${PHMAP_CXX_STANDARD})
2019-03-23 23:26:11 -04:00
set_property(TARGET ${_NAME} PROPERTY CXX_STANDARD_REQUIRED ON)
add_test(NAME ${_NAME} COMMAND ${_NAME})
endfunction()
2019-03-31 14:35:16 -04:00
# -------------------------------------------------------------
2019-03-23 23:26:11 -04:00
function(check_target my_target)
if(NOT TARGET ${my_target})
2019-03-24 10:35:01 -04:00
message(FATAL_ERROR " PHMAP: compiling phmap tests requires a ${my_target} CMake target in your project,
2019-03-23 23:26:11 -04:00
see CMake/README.md for more details")
endif(NOT TARGET ${my_target})
endfunction()