View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014237CMakeCMakepublic2013-06-20 10:012013-12-02 08:51
ReporterPavel Shramov 
Assigned ToBrad King 
PrioritynormalSeveritymajorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target VersionCMake 2.8.12Fixed in VersionCMake 2.8.12 
Summary0014237: Generated dependency paths may be too long for projects with relative includes
DescriptionWhen cmake calculates dependencies for C/C++ files with relative include clauses result paths are constructed with simple append header_path + '/' + inner_header_path.

This leads to depend file like

CMakeFiles/test.dir/test.c.o: ../s1/../s2/f2.h
CMakeFiles/test.dir/test.c.o: ../s1/../s2/s2.2/../../s3/f3.h
CMakeFiles/test.dir/test.c.o: ../s1/../s2/s2.2/f2.2.h
CMakeFiles/test.dir/test.c.o: ../s1/f1.h

instead of

CMakeFiles/test.dir/test.c.o: ../s1/f1.h
CMakeFiles/test.dir/test.c.o: ../s2/f2.h
CMakeFiles/test.dir/test.c.o: ../s2/s2.2/f2.2.h
CMakeFiles/test.dir/test.c.o: ../s3/f3.h

With long chain of includes it may result in broken makefiles with paths larger then MAXPATH on win32 (260 chars).
TagsNo tags attached.
Attached Filestgz file icon relative.tgz [^] (833 bytes) 2013-06-20 10:02
patch file icon 7c61c73f+0001-cmDependsC-Collapse-relative-include-paths.patch [^] (4,274 bytes) 2013-06-26 10:18 [Show Content]

 Relationships

  Notes
(0033355)
Pavel Shramov (reporter)
2013-06-20 10:02

To reproduce - decompress attached archive, run make

Pull request on github: https://github.com/Kitware/CMake/pull/50 [^]
(0033384)
Brad King (manager)
2013-06-26 10:19

This looks like a good fix. Based on your pull request I created the attached "7c61c73f+0001-cmDependsC-Collapse-relative-include-paths.patch". Please try it out.
(0033393)
Pavel Shramov (reporter)
2013-06-27 04:36

Works for me.
(0033439)
Brad King (manager)
2013-07-01 09:52

Thanks for testing it. Applied:

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=551d3343 [^]
(0034625)
Robert Maynard (manager)
2013-12-02 08:51

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

 Issue History
Date Modified Username Field Change
2013-06-20 10:01 Pavel Shramov New Issue
2013-06-20 10:02 Pavel Shramov File Added: relative.tgz
2013-06-20 10:02 Pavel Shramov Note Added: 0033355
2013-06-26 10:18 Brad King File Added: 7c61c73f+0001-cmDependsC-Collapse-relative-include-paths.patch
2013-06-26 10:19 Brad King Note Added: 0033384
2013-06-27 04:36 Pavel Shramov Note Added: 0033393
2013-07-01 09:52 Brad King Note Added: 0033439
2013-07-01 09:52 Brad King Assigned To => Brad King
2013-07-01 09:52 Brad King Status new => resolved
2013-07-01 09:52 Brad King Resolution open => fixed
2013-07-01 09:52 Brad King Fixed in Version => CMake 2.8.12
2013-07-01 09:52 Brad King Target Version => CMake 2.8.12
2013-12-02 08:51 Robert Maynard Note Added: 0034625
2013-12-02 08:51 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team