View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0015003CMakeCMakepublic2014-07-02 16:292016-06-10 14:31
ReporterRyan Curtin 
Assigned ToKitware Robot 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionmoved 
PlatformOSdebianOS Versionsid
Product VersionCMake 3.0 
Target VersionFixed in Version 
Summary0015003: depend.make ignores files with the same name
DescriptionI've attached an interesting project that exposes a bug that is similar (but maybe not identical) to http://public.kitware.com/Bug/view.php?id=9354 [^] . This occurred while working on mlpack ( http://www.mlpack.org/ [^] ) which uses CMake, but I have reduced it to the simplest case I can think of.

We have a test file, 'test.cpp', which includes two files 'a.hpp' and 'b.hpp'. The file 'a.hpp' includes 'a/a.hpp' which in turn includes 'impl.hpp' located in the directory a/. The file 'b.hpp' includes 'b/b.hpp' which in turn includes 'impl.hpp' located in the directory b/.

Then, the CMake configuration just makes a target 'test' that depends on test.cpp, and ideally CMake should figure out all the header dependencies correctly.

However, when CMake is used to configure and build the target, the resulting depend.make file associated with the test target only contains a/impl.hpp and not b/impl.hpp. This means I can make changes to b/impl.hpp and recompile, but CMake does not detect the changes.

Unfortunately I am not enough of a CMake expert to provide a patch, but I thought it would at least be useful to reproduce the issue.
Steps To Reproduce1. unpack attached .tar.gz
2. use CMake to configure it
3. build the test target
4. run ./test, look, the output is complaints
5. modify b/impl.hpp and add vulgarities
6. make test
7. run ./test... no vulgarities!
Additional InformationI tried with both CMake 2.8 and 3.0, so it is tested against the latest stable release of CMake in both the 2.x and 3.x branches.
TagsNo tags attached.
Attached Filesgz file icon cmake-test.tar.gz [^] (565 bytes) 2014-07-02 16:29

 Relationships
related to 0009354closedBrad King wrong C dependency if header file has same name as standard header file 

  Notes
(0036312)
Ryan Curtin (reporter)
2014-07-02 16:31

Oops, I wrote "I thought it would at least be useful to reproduce the issue" but I mean "I thought it would at least be useful to report the issue". Please excuse the typo...
(0036318)
Brad King (manager)
2014-07-03 09:23

Just as in 0009354 comment 0009354:0017053 this is a known limitation and is best worked around by changing the code to not do this.
(0042578)
Kitware Robot (administrator)
2016-06-10 14:29

Resolving issue as `moved`.

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.

 Issue History
Date Modified Username Field Change
2014-07-02 16:29 Ryan Curtin New Issue
2014-07-02 16:29 Ryan Curtin File Added: cmake-test.tar.gz
2014-07-02 16:31 Ryan Curtin Note Added: 0036312
2014-07-03 09:22 Brad King Relationship added related to 0009354
2014-07-03 09:23 Brad King Note Added: 0036318
2014-07-03 09:23 Brad King Status new => backlog
2016-06-10 14:29 Kitware Robot Note Added: 0042578
2016-06-10 14:29 Kitware Robot Status backlog => resolved
2016-06-10 14:29 Kitware Robot Resolution open => moved
2016-06-10 14:29 Kitware Robot Assigned To => Kitware Robot
2016-06-10 14:31 Kitware Robot Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team