View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0015672CMakeCMakepublic2015-07-30 10:592016-01-04 11:51
ReporterA. Klitzing 
Assigned ToGregor Jasny 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOSXOS Version10.10
Product VersionCMake 3.3 
Target VersionCMake 3.3.1Fixed in VersionCMake 3.3.1 
Summary0015672: XCode project broken since cmake 3.3.0
DescriptionWe use cmake to build our application for iOS. If we try the same workflow with cmake 3.3.0 we get this error:


$ cmakexbuild -target install
2015-07-30 16:41:03.453 xcodebuild[47660:18383918] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 1381. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2015-07-30 16:41:03.458 xcodebuild[47660:18383918] CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 1381. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
2015-07-30 16:41:03.459 xcodebuild[47660:18383918] The data couldn’t be read because it isn’t in the correct format.
xcodebuild: error: Unable to read project 'XXX.xcodeproj'.
    Reason: Project /tmp/build/XXX.xcodeproj cannot be opened because the project file cannot be parsed.




The same workflow works with cmake 3.0.x - 3.2.x!
Steps To Reproduce1. cmake ../XXX/ -DCMAKE_PREFIX_PATH=/tmp/thirdparty -DCMAKE_TOOLCHAIN_FILE=../XXX/cmake/iOS.toolchain.cmake -GXcode
2. cmakexbuild -target install


Toolchain file: https://code.google.com/p/ios-cmake/source/browse/toolchain/iOS.cmake [^]
Additional InformationLine 1380 - 1382 of project.pbxproj

1380 2525E3626D4B43E89F8019E3 /* /tmp/XXX/resources/images/iOS/appIcons/icon29x29@2x.png */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = image; na me = "icon29x29@2x.png"; path = "resources/images/iOS/appIcons/icon29x29@2x.png"; sourceTree = SOURCE_ROOT; };

1381 254B9DCBBC4947269D39ACED /* /tmp/XXX/resources/images/iOS/appIcons/icon29x29~ipad.png */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = image; name = icon29x29~ipad.png; path = resources/images/iOS/appIcons/icon29x29~ipad.png; sourceTree = SOURCE_ROOT; };

1382 268D04D278914C12AE277A44 /* /tmp/XXX/resources/images/iOS/appIcons/icon40x40@2x~ipad.png */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = imag e; name = "icon40x40@2x~ipad.png"; path = "resources/images/iOS/appIcons/icon40x40@2x~ipad.png"; sourceTree = SOURCE_ROOT; };
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0039196)
Brad King (manager)
2015-07-30 11:09

> cmakexbuild -target install

Sode note: cmakexbuild has not been needed since Xcode 4.0 when the default amount of output became more reasonable. Even "cmake --build" will internally select cmakexbuild only on Xcode < 4 and otherwise use xcodebuild.
(0039209)
Gregor Jasny (developer)
2015-07-31 07:59

I pushed the fix-xcode-quoting topic branch and merged to next.
(0039210)
Brad King (manager)
2015-07-31 08:48

Re 0015672:0039209: Thanks. I rebased that back on 'release' and updated the commit message to reference the commit that caused the regression:

 Xcode: Quote strings containing a tilde
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f7a9ed7e [^]

I also dropped the release note update because we don't maintain release notes cor bug fixes (just features and deprecations).
(0039214)
Gregor Jasny (developer)
2015-08-01 18:28

Thanks for the cleaning up. I did some more experiments and discovered more ASCII characters which need quoting: |;!?':&#%^"\`

But the whole blacklist approach does not work with UTF-8 characters not in the 7 bit ASCII space. For example a german Umlaut-a ä would be printed unescaped and leads to parsing problems.

So I reversed the logic and skip quoting only if all characters are in the whitelist. Do you think that could be 3.3.1 material?
(0039218)
Brad King (manager)
2015-08-03 08:38

Re 0015672:0039214: Thanks for digging further into the quoting requirements. I'd like to keep the post-release changes to 3.3 to a minimum so let's target the more complete fix for 3.4.
(0039219)
Brad King (manager)
2015-08-03 09:28

I've queued this fix for merge into 'release' for 3.3.1.

I'm marking this issue as 'resolved' because the originally reported problem has been addressed. Further development proposed in 0015672:0039214 can be done as post-3.3 development and does not need to be tracked here.
(0040102)
Robert Maynard (manager)
2016-01-04 11:51

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2015-07-30 10:59 A. Klitzing New Issue
2015-07-30 11:06 Brad King Assigned To => Gregor Jasny
2015-07-30 11:06 Brad King Status new => assigned
2015-07-30 11:09 Brad King Note Added: 0039196
2015-07-30 11:12 Brad King Target Version => CMake 3.3.1
2015-07-30 11:12 Brad King Product Version => CMake 3.3
2015-07-31 07:59 Gregor Jasny Note Added: 0039209
2015-07-31 08:48 Brad King Note Added: 0039210
2015-08-01 18:28 Gregor Jasny Note Added: 0039214
2015-08-03 08:38 Brad King Note Added: 0039218
2015-08-03 09:28 Brad King Note Added: 0039219
2015-08-03 09:28 Brad King Status assigned => resolved
2015-08-03 09:28 Brad King Resolution open => fixed
2015-08-03 09:28 Brad King Fixed in Version => CMake 3.3.1
2016-01-04 11:51 Robert Maynard Note Added: 0040102
2016-01-04 11:51 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team