mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-04-29 12:13:52 +00:00
50 lines
1.5 KiB
CMake
50 lines
1.5 KiB
CMake
#
|
|
#
|
|
# Includes GTest and provides a helper macro to add tests. Add make check, as well, which
|
|
# gives output on failed tests without having to set an environment variable.
|
|
#
|
|
#
|
|
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
|
|
add_subdirectory("${CLI11_SOURCE_DIR}/extern/googletest" "${CLI11_BINARY_DIR}/extern/googletest" EXCLUDE_FROM_ALL)
|
|
|
|
|
|
if(GOOGLE_TEST_INDIVIDUAL)
|
|
if(NOT CMAKE_VERSION VERSION_LESS 3.9)
|
|
include(GoogleTest)
|
|
else()
|
|
set(GOOGLE_TEST_INDIVIDUAL OFF)
|
|
endif()
|
|
endif()
|
|
|
|
# Target must already exist
|
|
macro(add_gtest TESTNAME)
|
|
target_link_libraries(${TESTNAME} PUBLIC gtest gmock gtest_main)
|
|
|
|
if(GOOGLE_TEST_INDIVIDUAL)
|
|
if(CMAKE_VERSION VERSION_LESS 3.10)
|
|
gtest_add_tests(TARGET ${TESTNAME}
|
|
TEST_PREFIX "${TESTNAME}."
|
|
TEST_LIST TmpTestList)
|
|
set_tests_properties(${TmpTestList} PROPERTIES FOLDER "Tests")
|
|
else()
|
|
gtest_discover_tests(${TESTNAME}
|
|
TEST_PREFIX "${TESTNAME}."
|
|
PROPERTIES FOLDER "Tests")
|
|
|
|
endif()
|
|
else()
|
|
add_test(${TESTNAME} ${TESTNAME})
|
|
set_target_properties(${TESTNAME} PROPERTIES FOLDER "Tests")
|
|
if (CLI11_FORCE_LIBCXX)
|
|
set_property(TARGET ${T} APPEND_STRING
|
|
PROPERTY LINK_FLAGS -stdlib=libc++)
|
|
endif()
|
|
endif()
|
|
|
|
endmacro()
|
|
|
|
set_target_properties(gtest gtest_main gmock gmock_main
|
|
PROPERTIES FOLDER "Extern")
|