mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-04-30 12:43:52 +00:00
add some test of the remove_excludes functions add test for Issue #256 add remove_subcommand fail test add remove_subcommand function and add_subcommand to option_group and some tests associated with them.
70 lines
2.2 KiB
CMake
70 lines
2.2 KiB
CMake
#
|
|
#
|
|
# Downloads 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)
|
|
# older version of google tests doesn't support MSYS so needs this flag to compile
|
|
if (MSYS)
|
|
set(gtest_disable_pthreads ON CACHE BOOL "" FORCE)
|
|
endif()
|
|
set(CMAKE_SUPPRESS_DEVELOPER_WARNINGS 1 CACHE BOOL "")
|
|
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")
|
|
endif()
|
|
|
|
endmacro()
|
|
|
|
mark_as_advanced(
|
|
gmock_build_tests
|
|
gtest_build_samples
|
|
gtest_build_tests
|
|
gtest_disable_pthreads
|
|
gtest_force_shared_crt
|
|
gtest_hide_internal_symbols
|
|
BUILD_GMOCK
|
|
BUILD_GTEST
|
|
)
|
|
|
|
set_target_properties(gtest gtest_main gmock gmock_main
|
|
PROPERTIES FOLDER "Extern")
|
|
|
|
if(MSVC)
|
|
if (MSVC_VERSION GREATER_EQUAL 1900)
|
|
target_compile_definitions(gtest PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
|
|
target_compile_definitions(gtest_main PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
|
|
target_compile_definitions(gmock PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
|
|
target_compile_definitions(gmock_main PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
|
|
endif()
|
|
endif()
|