View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0011658CMakeCMakepublic2011-01-05 07:082011-06-17 18:21
Reporterzub 
Assigned ToAlex Neundorf 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product VersionCMake 2.8.3 
Target VersionCMake 2.8.5Fixed in VersionCMake 2.8.5 
Summary0011658: CMake Eclipse CDT4 project generator can generate invalid XML
DescriptionEclipse CD4 project generator does not escape include paths that are put into the resulting .cproject XML file. Thus, if there is an include path specified that contains an XML-unsafe character, the resulting .cproject file is not a valid XML file.
Steps To ReproduceI observed this in Linux. I'm not sure how do Windows cope with such odd directory names. Either way CMake should always produce valid XML file.

1. specify an odd include directory like '&inc' in CMakeLists.txt
2. generate Eclipse CDT4 project (-G "Eclipse CDT4 - Unix Makefiles")
3. look into the resulting .cproject XML file

The attached testcase results in this:

testcase$ xmllint .cproject
.cproject:158: parser error : EntityRef: expecting ';'
<pathentry include="/home/user/tmp/cmake-test/testcase/&inc" kind="inc" path=""
                                                           ^
Additional InformationAlternatively just unpack the attached testcase.tar.gz and run ./generate-eclipse-project.

The makefiles generated work correctly, but the .cproject file is invalid. Escaping the data in the .cproject file would solve this issue.
TagsNo tags attached.
Attached Filesgz file icon testcase.tar.gz [^] (546 bytes) 2011-01-05 07:08
gz file icon testcase-v2.tar.gz [^] (561 bytes) 2011-01-05 07:41

 Relationships

  Notes
(0024411)
zub (reporter)
2011-01-05 07:42

Obviously the same issue affects:

* include paths
* project name
* target name
* source file names

An example demonstrating all of these is attached as testcase-v2.tar.gz. However odd the files might be, the testcase compiles fine in linux using the CMake-generated unix makefiles. But the .cproject file is broken.
(0025420)
Alex Neundorf (developer)
2011-02-12 16:06

Thanks for the nice testcase ! :-)

I fixed it, and there was one more problem if the subdir was then also used with add_subdirectory(), and pushed this into next.

I hope this will still make it into 2.8.4.

Alex

 Issue History
Date Modified Username Field Change
2011-01-05 07:08 zub New Issue
2011-01-05 07:08 zub File Added: testcase.tar.gz
2011-01-05 07:41 zub File Added: testcase-v2.tar.gz
2011-01-05 07:42 zub Note Added: 0024411
2011-01-06 16:57 Bill Hoffman Assigned To => Alex Neundorf
2011-01-06 16:57 Bill Hoffman Status new => assigned
2011-02-12 16:06 Alex Neundorf Note Added: 0025420
2011-02-12 16:06 Alex Neundorf Status assigned => closed
2011-02-12 16:06 Alex Neundorf Resolution open => fixed
2011-06-17 18:21 David Cole Fixed in Version => CMake 2.8.5
2011-06-17 18:21 David Cole Target Version => CMake 2.8.5


Copyright © 2000 - 2018 MantisBT Team