mirror of https://github.com/catchorg/Catch2.git
Consider CMP0110 add_test() policy
CMake 3.19 introduces new add_test() behavior guarded with the policy CMP0110. See: https://cmake.org/cmake/help/latest/policy/CMP0110.html Update the helper script ParseAndAddCatchTests to consider the policy and handle the test case name accordingly.
This commit is contained in:
parent
2d30df3500
commit
69297ceeb6
|
@ -120,6 +120,14 @@ function(ParseAndAddCatchTests_ParseFile SourceFile TestTarget)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# check CMP0110 policy for new add_test() behavior
|
||||||
|
if(POLICY CMP0110)
|
||||||
|
cmake_policy(GET CMP0110 _cmp0110_value) # new add_test() behavior
|
||||||
|
else()
|
||||||
|
# just to be thorough explicitly set the variable
|
||||||
|
set(_cmp0110_value)
|
||||||
|
endif()
|
||||||
|
|
||||||
foreach(TestName ${Tests})
|
foreach(TestName ${Tests})
|
||||||
# Strip newlines
|
# Strip newlines
|
||||||
string(REGEX REPLACE "\\\\\n|\n" "" TestName "${TestName}")
|
string(REGEX REPLACE "\\\\\n|\n" "" TestName "${TestName}")
|
||||||
|
@ -194,7 +202,11 @@ function(ParseAndAddCatchTests_ParseFile SourceFile TestTarget)
|
||||||
|
|
||||||
# Work around CMake 3.18.0 change in `add_test()`, before the escaped quotes were neccessary,
|
# Work around CMake 3.18.0 change in `add_test()`, before the escaped quotes were neccessary,
|
||||||
# only with CMake 3.18.0 the escaped double quotes confuse the call. This change is reverted in 3.18.1
|
# only with CMake 3.18.0 the escaped double quotes confuse the call. This change is reverted in 3.18.1
|
||||||
if(NOT ${CMAKE_VERSION} VERSION_EQUAL "3.18")
|
# And properly introduced in 3.19 with the CMP0110 policy
|
||||||
|
if(_cmp0110_value STREQUAL "NEW" OR ${CMAKE_VERSION} VERSION_EQUAL "3.18")
|
||||||
|
ParseAndAddCatchTests_PrintDebugMessage("CMP0110 set to NEW, no need for add_test(\"\") workaround")
|
||||||
|
else()
|
||||||
|
ParseAndAddCatchTests_PrintDebugMessage("CMP0110 set to OLD adding \"\" for add_test() workaround")
|
||||||
set(CTestName "\"${CTestName}\"")
|
set(CTestName "\"${CTestName}\"")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue