This makes the package binNMUable again. (patch paths_in_regex_espace_metachars.diff)ci/unstable
parent
d0d4b6ab8f
commit
8c098f5507
@ -0,0 +1,53 @@
|
|||||||
|
From: Modestas Vainius <modax@debian.org>
|
||||||
|
Subject: Escape metachars before embedding paths into the regex
|
||||||
|
Forwarded: yes
|
||||||
|
Bug: http://public.kitware.com/Bug/view.php?id=12999
|
||||||
|
Origin: vendor
|
||||||
|
|
||||||
|
${CMake_SOURCE_DIR} and ${CMake_BINARY_DIR} cannot be embedded into regex
|
||||||
|
directly. If they contain special regex metacharacters like +, the regex
|
||||||
|
will break. So just escape such metacharacters with a backslash before
|
||||||
|
embedding the path into the regex.
|
||||||
|
|
||||||
|
The issue affected the following tests: CTestTestConfigFileInBuildDir1 and
|
||||||
|
CTestTestConfigFileInBuildDir2.
|
||||||
|
|
||||||
|
--- a/Tests/CMakeLists.txt
|
||||||
|
+++ b/Tests/CMakeLists.txt
|
||||||
|
@@ -16,6 +16,11 @@ MACRO(ADD_TEST_MACRO NAME COMMAND)
|
||||||
|
LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/${dir}")
|
||||||
|
ENDMACRO(ADD_TEST_MACRO)
|
||||||
|
|
||||||
|
+MACRO(REGEX_ESCAPE_STRING _OUT _IN)
|
||||||
|
+ # Escape special regex metacharacters with a backslash
|
||||||
|
+ string(REGEX REPLACE "([$^.[|*+?()]|])" "\\\\\\1" ${_OUT} "${_IN}")
|
||||||
|
+ENDMACRO(REGEX_ESCAPE_STRING _OUT _IN)
|
||||||
|
+
|
||||||
|
INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CheckFortran.cmake)
|
||||||
|
|
||||||
|
# Fake a user home directory to avoid polluting the real one.
|
||||||
|
@@ -1654,9 +1659,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=
|
||||||
|
-S "${CMake_BINARY_DIR}/Tests/CTestTestConfigFileInBuildDir1/test1.cmake" -V
|
||||||
|
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestConfigFileInBuildDir1/testOut1.log"
|
||||||
|
)
|
||||||
|
+ REGEX_ESCAPE_STRING(CTEST_TEST_ESCAPED_SOURCE_DIR "${CMake_SOURCE_DIR}")
|
||||||
|
SET_TESTS_PROPERTIES(CTestTestConfigFileInBuildDir1 PROPERTIES DEPENDS CTestTestNoBuild
|
||||||
|
PASS_REGULAR_EXPRESSION
|
||||||
|
- "Reading ctest configuration file: ${CMake_SOURCE_DIR}.Tests.CTestTestConfigFileInBuildDir.CTestConfig.cmake")
|
||||||
|
+ "Reading ctest configuration file: ${CTEST_TEST_ESCAPED_SOURCE_DIR}.Tests.CTestTestConfigFileInBuildDir.CTestConfig.cmake")
|
||||||
|
|
||||||
|
CONFIGURE_FILE(
|
||||||
|
"${CMake_SOURCE_DIR}/Tests/CTestTestConfigFileInBuildDir/test2.cmake.in"
|
||||||
|
@@ -1670,10 +1676,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=
|
||||||
|
-S "${CMake_BINARY_DIR}/Tests/CTestTestConfigFileInBuildDir2/test2.cmake" -V
|
||||||
|
--output-log "${CMake_BINARY_DIR}/Tests/CTestTestConfigFileInBuildDir2/testOut2.log"
|
||||||
|
)
|
||||||
|
+ REGEX_ESCAPE_STRING(CTEST_TEST_ESCAPED_BINARY_DIR "${CMake_BINARY_DIR}")
|
||||||
|
SET_TESTS_PROPERTIES(CTestTestConfigFileInBuildDir2 PROPERTIES DEPENDS CTestTestNoBuild
|
||||||
|
REQUIRED_FILES ${CMake_BINARY_DIR}/Tests/CTestTestConfigFileInBuildDir2/CTestConfig.cmake
|
||||||
|
PASS_REGULAR_EXPRESSION
|
||||||
|
- "Reading ctest configuration file: ${CMake_BINARY_DIR}.Tests.CTestTestConfigFileInBuildDir2.CTestConfig.cmake")
|
||||||
|
+ "Reading ctest configuration file: ${CTEST_TEST_ESCAPED_BINARY_DIR}.Tests.CTestTestConfigFileInBuildDir2.CTestConfig.cmake")
|
||||||
|
|
||||||
|
# Use macro, not function so that build can still be driven by CMake 2.4.
|
||||||
|
# After 2.6 is required, this could be a function without the extra 'set'
|
Loading…
Reference in new issue