mirror of
https://github.com/greg7mdp/parallel-hashmap.git
synced 2026-08-29 08:34:39 +08:00
58 lines
1.4 KiB
CMake
58 lines
1.4 KiB
CMake
|
|
#set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||
|
|
set(ABSL_IDE_FOLDER Abseil)
|
||
|
|
|
||
|
|
# absl_cc_test(
|
||
|
|
# NAME
|
||
|
|
# awesome_test
|
||
|
|
# SRCS
|
||
|
|
# "awesome_test.cc"
|
||
|
|
# DEPS
|
||
|
|
# absl::awesome
|
||
|
|
# gmock
|
||
|
|
# gtest_main
|
||
|
|
# )
|
||
|
|
function(absl_cc_test)
|
||
|
|
cmake_parse_arguments(ABSL_CC_TEST
|
||
|
|
""
|
||
|
|
"NAME"
|
||
|
|
"SRCS;COPTS;DEFINES;LINKOPTS;DEPS"
|
||
|
|
${ARGN}
|
||
|
|
)
|
||
|
|
|
||
|
|
set(_NAME "absl_${ABSL_CC_TEST_NAME}")
|
||
|
|
add_executable(${_NAME} "")
|
||
|
|
target_sources(${_NAME} PRIVATE ${ABSL_CC_TEST_SRCS})
|
||
|
|
target_include_directories(${_NAME}
|
||
|
|
PUBLIC ${ABSL_COMMON_INCLUDE_DIRS}
|
||
|
|
PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
|
||
|
|
)
|
||
|
|
target_compile_definitions(${_NAME}
|
||
|
|
PUBLIC ${ABSL_CC_TEST_DEFINES}
|
||
|
|
)
|
||
|
|
target_compile_options(${_NAME}
|
||
|
|
PRIVATE ${ABSL_CC_TEST_COPTS}
|
||
|
|
)
|
||
|
|
target_link_libraries(${_NAME}
|
||
|
|
PUBLIC ${ABSL_CC_TEST_DEPS}
|
||
|
|
PRIVATE ${ABSL_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 CXX_STANDARD ${ABSL_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 " ABSL: compiling absl requires a ${my_target} CMake target in your project,
|
||
|
|
see CMake/README.md for more details")
|
||
|
|
endif(NOT TARGET ${my_target})
|
||
|
|
endfunction()
|
||
|
|
|
||
|
|
|