MantisBT - CMake
View Issue Details
0015328CMakeCMakepublic2014-12-27 14:412016-06-10 14:21
René J.V. Bertin 
Gregor Jasny 
normalblockalways
closedfixed 
MacX10.9.5
CMake 3.0.2 
CMake 3.5CMake 3.5 
0015328: cmake generates corrupt Xcode projects for KDE projects
When using cmake to create an Xcode project for building KDE applications from MacPorts (that build fine with the Makefiles generator), the generation terminates fine, but Xcode fails to open the generated project because of a parsing error.
1) Install MacPorts and the required dependencies for KDE apps
2) build a target project from source using MacPorts and retrieve the cmake command line from the build log
3) in a fresh build directory, execute the same cmake command but add -G Xcode to generate an XCode project.
For digikam, this is `cmake -DCMAKE_INSTALL_PREFIX=/opt/local -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_INSTALL_RPATH=/opt/local/lib -DCMAKE_INSTALL_NAME_DIR=/opt/local/lib -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr" -DCMAKE_MODULE_PATH=/opt/local/share/cmake/Modules -DCMAKE_FIND_FRAMEWORK=LAST -Wno-dev -DBUILD_SHARED_LIBS=ON -DBUNDLE_INSTALL_DIR=/Applications/MacPorts/KDE4 -DKDE_DISTRIBUTION_TEXT="MacPorts/Mac OS X" -DQT_QT_INCLUDE_DIR=/opt/local/include -DQT_QMAKESPEC=macx-g++ -DQT_ZLIB_LIBRARY=/opt/local/lib/libz.dylib -DQT_PNG_LIBRARY=/opt/local/lib/libpng.dylib -DDOCBOOKXSL_DIR=/opt/local/share/xsl/docbook-xsl -DGETTEXT_INCLUDE_DIR=/opt/local/include -DGETTEXT_LIBRARY=/opt/local/lib/libgettextlib.dylib -DGIF_INCLUDE_DIR=/opt/local/include -DGIF_LIBRARY=/opt/local/lib/libgif.dylib -DJASPER_INCLUDE_DIR=/opt/local/include -DJASPER_LIBRARY=/opt/local/lib/libjasper.dylib -DJPEG_INCLUDE_DIR=/opt/local/include -DJPEG_LIBRARY=/opt/local/lib/libjpeg.dylib -DLBER_LIBRARIES=/opt/local/lib/liblber.dylib -DLDAP_INCLUDE_DIR=/opt/local/include -DLDAP_LIBRARIES=/opt/local/lib/libldap.dylib -DLIBEXSLT_INCLUDE_DIR=/opt/local/include -DLIBEXSLT_LIBRARIES=/opt/local/lib/libexslt.dylib -DLIBICALSS_LIBRARY=/opt/local/lib/libicalss.dylib -DLIBICAL_INCLUDE_DIRS=/opt/local/include -DLIBICAL_LIBRARY=/opt/local/lib/libical.dylib -DLIBINTL_INCLUDE_DIR=/opt/local/include -DLIBINTL_LIBRARY=/opt/local/lib/libintl.dylib -DLIBXML2_INCLUDE_DIR=/opt/local/include/libxml2 -DLIBXML2_LIBRARIES=/opt/local/lib/libxml2.dylib -DLIBXML2_XMLLINT_EXECUTABLE=/opt/local/bin/xmllint -DLIBXSLT_INCLUDE_DIR=/opt/local/include -DLIBXSLT_LIBRARIES=/opt/local/lib/libxslt.dylib -DMYSQLD_EXECUTABLE=/opt/local/libexec/mysqld -DMYSQL_INCLUDE_DIR=/opt/local/include/mysql5/mysql -DMYSQL_LIB_DIR=/opt/local/lib/mysql5/mysql -DMYSQLCONFIG_EXECUTABLE=/opt/local/bin/mysql_config5 -DOPENAL_INCLUDE_DIR=/System/Library/Frameworks/OpenAL.framework/Headers -DOPENAL_LIBRARY=/System/Library/Frameworks/OpenAL.framework -DPNG_INCLUDE_DIR=/opt/local/include -DPNG_PNG_INCLUDE_DIR=/opt/local/include -DPNG_LIBRARY=/opt/local/lib/libpng.dylib -DTIFF_INCLUDE_DIR=/opt/local/include -DTIFF_LIBRARY=/opt/local/lib/libtiff.dylib -DENABLE_KDEPIMLIBSSUPPORT:BOOL=ON -DOpenCV_DIR=/opt/local/lib/cmake -DDIGIKAMSC_COMPILE_LIBKGEOMAP:BOOL=ON -DDIGIKAMSC_COMPILE_LIBKVKONTAKTE:BOOL=ON -DDIGIKAMSC_COMPILE_LIBMEDIAWIKI:BOOL=ON -DDIGIKAMSC_COMPILE_LIBKFACE:BOOL=ON -Wno-dev ../digikam-4.6.0 -DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo -DCMAKE_STRIP:FILEPATH=/bin/echo -DDIGIKAMSC_COMPILE_DOC=on -DDIGIKAMSC_COMPILE_PO=OFF -DDIGIKAMSC_USE_PRIVATE_KDEGRAPHICS=off -DENABLE_LCMS2=on -DENABLE_INTERNALMYSQL=off -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_OSX_ARCHITECTURES="x86_64" -G Xcode ../digikam-4.6.0`

4) Try to open the generated Xcode project file in Xcode (5.1)
This hasn't been working for me on OS X 10.6.8 (Xcode 3.2.6) and now 10.9.5, neither with cmake 3.0.2 nor with older versions.

I'm attaching the generated CMakeCache.txt as well as the xml file inside the Xcode project bundle (if this bugtracker allows me to attach multiple files).
No tags attached.
related to 0015969closed  String property broken in cmake 3.5.0-rc2 with XCode 
txt CMakeCache.txt (152,974) 2014-12-27 14:41
https://public.kitware.com/Bug/file/5333/CMakeCache.txt
zip project.pbxproj.zip (301,959) 2014-12-27 14:42
https://public.kitware.com/Bug/file/5334/project.pbxproj.zip
zip digikam-sc=project.pbxproj.zip (628,343) 2014-12-27 14:44
https://public.kitware.com/Bug/file/5335/digikam-sc%3Dproject.pbxproj.zip
txt CMakeCache-cmake-3.3.1.txt (46,718) 2015-09-14 16:53
https://public.kitware.com/Bug/file/5525/CMakeCache-cmake-3.3.1.txt
zip Konsole.xcodeproj.zip (53,954) 2015-09-14 16:53
https://public.kitware.com/Bug/file/5526/Konsole.xcodeproj.zip
Issue History
2014-12-27 14:41René J.V. BertinNew Issue
2014-12-27 14:41René J.V. BertinFile Added: CMakeCache.txt
2014-12-27 14:42René J.V. BertinFile Added: project.pbxproj.zip
2014-12-27 14:44René J.V. BertinFile Added: digikam-sc=project.pbxproj.zip
2014-12-27 14:46René J.V. BertinNote Added: 0037531
2015-01-08 11:49Brad KingNote Added: 0037631
2015-09-14 16:07Gregor JasnyNote Added: 0039422
2015-09-14 16:51René J.V. BertinNote Added: 0039423
2015-09-14 16:53René J.V. BertinFile Added: CMakeCache-cmake-3.3.1.txt
2015-09-14 16:53René J.V. BertinFile Added: Konsole.xcodeproj.zip
2015-12-27 04:40Gregor JasnyAssigned To => Gregor Jasny
2015-12-27 04:40Gregor JasnyStatusnew => assigned
2015-12-27 05:07Gregor JasnyNote Added: 0040028
2016-01-02 11:03Gregor JasnyNote Added: 0040039
2016-01-07 13:29Brad KingNote Added: 0040144
2016-01-07 13:29Brad KingStatusassigned => resolved
2016-01-07 13:29Brad KingResolutionopen => fixed
2016-01-07 13:29Brad KingFixed in Version => CMake 3.5
2016-01-07 13:29Brad KingTarget Version => CMake 3.5
2016-02-11 08:25Brad KingRelationship addedrelated to 0015969
2016-06-10 14:21Kitware RobotNote Added: 0041256
2016-06-10 14:21Kitware RobotStatusresolved => closed

Notes
(0037531)
René J.V. Bertin   
2014-12-27 14:46   
digikam-sc=project.pbxproj.zip is the zipped file inside the generated toplevel digikam Xcode project (digikam-sc.xcodeproj/project.pbxproj); project.pbxproj.zip is the zipped file inside the Xcode project in the core dir (core/digikam.xcodeproj/project.pbxproj).
(0037631)
Brad King   
2015-01-08 11:49   
First, please test with CMake 3.1 just in case it happened to be fixed already.

Then, please try to strip down the project to a simpler case, preferably standalone.
(0039422)
Gregor Jasny   
2015-09-14 16:07   
Could you please re-try with CMake 3.3.1? I fixed some quoting bugs there. If it still fails I'll take a look at the file generated with 3.3.1.
(0039423)
René J.V. Bertin   
2015-09-14 16:51   
Well, the issue remains the same. I tried with a somewhat simpler KDE project, "konsole":

- install MacPorts and pull in all depencies with

%> sudo port patch konsole +docs

pick a build directory

%>cmake -DCMAKE_INSTALL_PREFIX=/opt/local -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_COLOR_MAKEFILE=ON -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_INSTALL_RPATH=/opt/local/lib -DCMAKE_INSTALL_NAME_DIR=/opt/local/lib -DCMAKE_SYSTEM_PREFIX_PATH="/opt/local;/usr" -DCMAKE_MODULE_PATH=/opt/local/share/cmake/Modules -DCMAKE_FIND_FRAMEWORK=LAST -Wno-dev -DCMAKE_BUILD_TYPE:STRING=MacPorts -DCMAKE_STRIP:FILEPATH=/bin/echo -DBUILD_SHARED_LIBS=ON -DBUNDLE_INSTALL_DIR=/Applications/MacPorts/KDE4 -DKDE_DISTRIBUTION_TEXT="MacPorts/Mac OS X" -DQT_QT_INCLUDE_DIR=/opt/local/include/qt4 -DQT_QMAKESPEC=macx-g++ -DQT_ZLIB_LIBRARY=/opt/local/lib/libz.dylib -DQT_PNG_LIBRARY=/opt/local/lib/libpng.dylib -DDOCBOOKXSL_DIR=/opt/local/share/xsl/docbook-xsl -DGETTEXT_INCLUDE_DIR=/opt/local/include -DGETTEXT_LIBRARY=/opt/local/lib/libgettextlib.dylib -DGIF_INCLUDE_DIR=/opt/local/include -DGIF_LIBRARY=/opt/local/lib/libgif.dylib -DJASPER_INCLUDE_DIR=/opt/local/include -DJASPER_LIBRARY=/opt/local/lib/libjasper.dylib -DJPEG_INCLUDE_DIR=/opt/local/include -DJPEG_LIBRARY=/opt/local/lib/libjpeg.dylib -DLBER_LIBRARIES=/opt/local/lib/liblber.dylib -DLDAP_INCLUDE_DIR=/opt/local/include -DLDAP_LIBRARIES=/opt/local/lib/libldap.dylib -DLIBEXSLT_INCLUDE_DIR=/opt/local/include -DLIBEXSLT_LIBRARIES=/opt/local/lib/libexslt.dylib -DLIBICALSS_LIBRARY=/opt/local/lib/libicalss.dylib -DLIBICAL_INCLUDE_DIRS=/opt/local/include -DLIBICAL_LIBRARY=/opt/local/lib/libical.dylib -DLIBINTL_INCLUDE_DIR=/opt/local/include -DLIBINTL_LIBRARY=/opt/local/lib/libintl.dylib -DLIBXML2_INCLUDE_DIR=/opt/local/include/libxml2 -DLIBXML2_LIBRARIES=/opt/local/lib/libxml2.dylib -DLIBXML2_XMLLINT_EXECUTABLE=/opt/local/bin/xmllint -DLIBXSLT_INCLUDE_DIR=/opt/local/include -DLIBXSLT_LIBRARIES=/opt/local/lib/libxslt.dylib -DMYSQLD_EXECUTABLE=/opt/local/libexec/mysqld -DMYSQL_INCLUDE_DIR=/opt/local/include/mysql5/mysql -DMYSQL_LIB_DIR=/opt/local/lib/mysql5/mysql -DMYSQLCONFIG_EXECUTABLE=/opt/local/bin/mysql_config5 -DOPENAL_INCLUDE_DIR=/System/Library/Frameworks/OpenAL.framework/Headers -DOPENAL_LIBRARY=/System/Library/Frameworks/OpenAL.framework -DPNG_INCLUDE_DIR=/opt/local/include -DPNG_PNG_INCLUDE_DIR=/opt/local/include -DPNG_LIBRARY=/opt/local/lib/libpng.dylib -DTIFF_INCLUDE_DIR=/opt/local/include -DTIFF_LIBRARY=/opt/local/lib/libtiff.dylib -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" -DCMAKE_OSX_ARCHITECTURES="x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.9" -DCMAKE_OSX_SYSROOT="/" `port work konsole`/konsole-4.14.3 -G Xcode


I'll be attaching the generated CMakeCache.txt and XCode project.
(0040028)
Gregor Jasny   
2015-12-27 05:07   
The problem here is the line:
OTHER_CPLUSPLUSFLAGS = " -DKDESRCDIR=\"\\"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_kde_konsole/konsole/work/konsole-4.14.3/src/tests/\\"\"  
";
(0040039)
Gregor Jasny   
2016-01-02 11:03   
Pushed xcode-escape-backslash topic into next
(0040144)
Brad King   
2016-01-07 13:29   
Re 0015328:0040039: Thanks. The change is:

 Xcode: Escape all backslashes in strings
 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ba39d7e9 [^]
(0041256)
Kitware Robot   
2016-06-10 14:21   
This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.