summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/XcodeProject/XcodeObjectNeedsEscape-check.cmake
diff options
context:
space:
mode:
authorGregor Jasny <gjasny@googlemail.com>2015-12-27 15:33:46 (GMT)
committerBrad King <brad.king@kitware.com>2016-01-07 18:23:24 (GMT)
commitba39d7e9d04b6a8d3d9bccdf07b69cd2d959a083 (patch)
treea4619cbf9b622f0dc95145913c605ae94f2f47a7 /Tests/RunCMake/XcodeProject/XcodeObjectNeedsEscape-check.cmake
parent90b50b2e28d32bcf239d3f6bc4d1114756a78827 (diff)
downloadCMake-ba39d7e9d04b6a8d3d9bccdf07b69cd2d959a083.zip
CMake-ba39d7e9d04b6a8d3d9bccdf07b69cd2d959a083.tar.gz
CMake-ba39d7e9d04b6a8d3d9bccdf07b69cd2d959a083.tar.bz2
Xcode: Escape all backslashes in strings (#15328)
Before this change backslashes in strings were escaped during compile flags adds via AppendFlag(). But global flags like OTHER_CPLUSPLUSFLAGS are not added as flags but as plain strings so they were not escaped properly. Now the escaping is performed within cmXCodeObject::PrintString() which ensures that strings are always encoded.
Diffstat (limited to 'Tests/RunCMake/XcodeProject/XcodeObjectNeedsEscape-check.cmake')
-rw-r--r--Tests/RunCMake/XcodeProject/XcodeObjectNeedsEscape-check.cmake7
1 files changed, 7 insertions, 0 deletions
diff --git a/Tests/RunCMake/XcodeProject/XcodeObjectNeedsEscape-check.cmake b/Tests/RunCMake/XcodeProject/XcodeObjectNeedsEscape-check.cmake
new file mode 100644
index 0000000..c34e3fe
--- /dev/null
+++ b/Tests/RunCMake/XcodeProject/XcodeObjectNeedsEscape-check.cmake
@@ -0,0 +1,7 @@
+set(expect "-DKDESRCDIR=\\\\\\\\\\\\\"foo\\\\\\\\\\\\\"")
+file(STRINGS ${RunCMake_TEST_BINARY_DIR}/XcodeObjectNeedsEscape.xcodeproj/project.pbxproj actual
+ REGEX "OTHER_CPLUSPLUSFLAGS = [^;]*;" LIMIT_COUNT 1)
+if(NOT "${actual}" MATCHES "${expect}")
+ message(SEND_ERROR "The actual project contains the line:\n ${actual}\n"
+ "which does not match expected regex:\n ${expect}\n")
+endif()