View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0011658 | CMake | CMake | public | 2011-01-05 07:08 | 2011-06-17 18:21 | ||||
Reporter | zub | ||||||||
Assigned To | Alex Neundorf | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | CMake 2.8.3 | ||||||||
Target Version | CMake 2.8.5 | Fixed in Version | CMake 2.8.5 | ||||||
Summary | 0011658: CMake Eclipse CDT4 project generator can generate invalid XML | ||||||||
Description | Eclipse 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 Reproduce | I 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 Information | Alternatively 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. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | testcase.tar.gz [^] (546 bytes) 2011-01-05 07:08 testcase-v2.tar.gz [^] (561 bytes) 2011-01-05 07:41 | ||||||||
Relationships | |
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 |
Notes |
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 |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |