#set_property(GLOBAL PROPERTY USE_FOLDERS ON) set(PHMAP_IDE_FOLDER Abseil) # phmap_cc_test( # NAME # awesome_test # SRCS # "awesome_test.cc" # DEPS # absl::awesome # gmock # gtest_main # ) function(phmap_cc_test) cmake_parse_arguments(PHMAP_CC_TEST "" "NAME" "SRCS;COPTS;DEFINES;LINKOPTS;DEPS" ${ARGN} ) set(_NAME "test_${PHMAP_CC_TEST_NAME}") add_executable(${_NAME} "") target_sources(${_NAME} PRIVATE ${PHMAP_CC_TEST_SRCS}) target_include_directories(${_NAME} PUBLIC ${PHMAP_COMMON_INCLUDE_DIRS} PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS} ) target_compile_definitions(${_NAME} PUBLIC ${PHMAP_CC_TEST_DEFINES} ) target_compile_options(${_NAME} PRIVATE ${PHMAP_CC_TEST_COPTS} ) target_link_libraries(${_NAME} 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 ${PHMAP_IDE_FOLDER}/test) 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}) endfunction() function(check_target my_target) if(NOT TARGET ${my_target}) 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()