[cmake-developers] [PATCH 9/9] Xcode: Refine quoting rules for Strings

Gregor Jasny gjasny at googlemail.com
Mon Apr 13 15:38:06 EDT 2015


$ and . do not need to be quoted, but brackets and * must be to
not confuse the Xcode parser.
---
 Source/cmXCodeObject.cxx                              | 2 +-
 Tests/RunCMake/XcodeProject/XcodeFileType-check.cmake | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Source/cmXCodeObject.cxx b/Source/cmXCodeObject.cxx
index b9c41f3..e72d315 100644
--- a/Source/cmXCodeObject.cxx
+++ b/Source/cmXCodeObject.cxx
@@ -243,7 +243,7 @@ void cmXCodeObject::PrintString(std::ostream& os,std::string String)
   bool needQuote =
     (String.empty() ||
      String.find("//") != String.npos ||
-     String.find_first_of(" <>.+-=@$[],") != String.npos);
+     String.find_first_of(" <>+-*=@[](){},") != String.npos);
   const char* quote = needQuote? "\"" : "";
 
   // Print the string, quoted and escaped as necessary.
diff --git a/Tests/RunCMake/XcodeProject/XcodeFileType-check.cmake b/Tests/RunCMake/XcodeProject/XcodeFileType-check.cmake
index 7882d7f..1847bc9 100644
--- a/Tests/RunCMake/XcodeProject/XcodeFileType-check.cmake
+++ b/Tests/RunCMake/XcodeProject/XcodeFileType-check.cmake
@@ -1,6 +1,6 @@
 set(expect-default "explicitFileType = sourcecode")
-set(expect-explicit "explicitFileType = \"sourcecode.c.h\"")
-set(expect-lastKnown "lastKnownFileType = \"sourcecode.c.h\"")
+set(expect-explicit "explicitFileType = sourcecode.c.h")
+set(expect-lastKnown "lastKnownFileType = sourcecode.c.h")
 foreach(src default explicit lastKnown)
   file(STRINGS ${RunCMake_TEST_BINARY_DIR}/XcodeFileType.xcodeproj/project.pbxproj actual-${src}
        REGEX "PBXFileReference.*src-${src}")
-- 
2.3.3



More information about the cmake-developers mailing list