MantisBT - CMake | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0014446 | CMake | CMake | public | 2013-09-28 10:26 | 2014-03-05 09:58 |
Reporter | Stephen Kelly | ||||
Assigned To | Brad King | ||||
Priority | normal | Severity | minor | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | OS | OS Version | |||
Product Version | CMake 2.8.12 | ||||
Target Version | CMake 2.8.12 | Fixed in Version | CMake 2.8.12 | ||
Summary | 0014446: Regression in cmMakefile::GetSourceFileWithOutput | ||||
Description | The kde strigidaemon repo does not build with the next branch (and 2.8.12 RC). http://build.kde.org/view/kdesupport/job/strigidaemon_master/23/consoleText [^] [ 55%] [ 57%] Error copying file (if different) from "/srv/jenkins/workspace/strigidaemon_master/build/bin/daemon/dbus/dbusclientinterface.cpp" to "/srv/jenkins/workspace/strigidaemon_master/bin/daemon/dbus/generated/dbusclientinterface.cpp". make[2]: *** [bin/daemon/dbus/dbusclientinterface.cpp] Error 1 make[2]: *** Waiting for unfinished jobs.... Generating dbustestinterface.cpp Scanning dependencies of target strigicmd Building CXX object bin/daemon/xsd/CMakeFiles/strigidaemonconfiguration.dir/strigidaemonconfiguration.cpp.o Error copying file (if different) from "/srv/jenkins/workspace/strigidaemon_master/build/bin/daemon/dbus/dbustestinterface.cpp" to "/srv/jenkins/workspace/strigidaemon_master/bin/daemon/dbus/generated/dbustestinterface.cpp". [ 59%] make[2]: *** [bin/daemon/dbus/dbustestinterface.cpp] Error 1 make[1]: *** [bin/daemon/dbus/CMakeFiles/dbusserver.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 59%] Building CXX object bin/strigicmd/CMakeFiles/strigicmd.dir/strigicmd.cpp.o It builds prior to commit 2268c41a057d948 (Optimize custom command full-path dependency lookup, 2013-08-06). It also builds with the following patch: diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index fd06a33..2aea078 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -2094,7 +2094,7 @@ cmSourceFile *cmMakefile::GetSourceFileWithOutput(const char *cname) // If the queried path is not absolute we use the backward compatible // linear-time search for an output with a matching suffix. - if(!cmSystemTools::FileIsFullPath(cname)) +// if(!cmSystemTools::FileIsFullPath(cname)) { return LinearGetSourceFileWithOutput(cname); } The code is here: https://projects.kde.org/projects/kdesupport/strigi/strigidaemon/repository/revisions/master/entry/bin/daemon/dbus/CMakeLists.txt [^] It looks buggy to me as in the perl-found branch (as taken by KDE jenkins), two custom commands have the same output file. A policy may be needed to choose the linear search in old behavior. | ||||
Steps To Reproduce | The problem can be reduced to this testcase: cmake_minimum_required(VERSION 2.8) execute_process(COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/input.cpp") execute_process(COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/main_dep.h") add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/output.cpp" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_BINARY_DIR}/input.cpp" "${CMAKE_CURRENT_BINARY_DIR}/output.cpp" MAIN_DEPENDENCY "${CMAKE_CURRENT_BINARY_DIR}/main_dep.h" ) add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/output.cpp" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_BINARY_DIR}/output.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/final_output.cpp" ) add_library(dbusserver STATIC "${CMAKE_CURRENT_BINARY_DIR}/output.cpp" ) If the MAIN_DEPENDENCY line is commented out, an error is reported at CMake time. | ||||
Additional Information | |||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files | |||||
Issue History | |||||
Date Modified | Username | Field | Change | ||
2013-09-28 10:26 | Stephen Kelly | New Issue | |||
2013-09-28 10:26 | Stephen Kelly | Status | new => assigned | ||
2013-09-28 10:26 | Stephen Kelly | Assigned To | => Brad King | ||
2013-09-30 09:08 | Brad King | Note Added: 0033934 | |||
2013-09-30 09:15 | Brad King | Note Added: 0033935 | |||
2013-09-30 09:21 | Brad King | Note Added: 0033936 | |||
2013-09-30 09:55 | Brad King | Note Added: 0033937 | |||
2013-09-30 09:55 | Brad King | Status | assigned => resolved | ||
2013-09-30 09:55 | Brad King | Resolution | open => fixed | ||
2013-09-30 09:55 | Brad King | Fixed in Version | => CMake 2.8.12 | ||
2013-09-30 09:55 | Brad King | Description Updated | bug_revision_view_page.php?rev_id=1275#r1275 | ||
2013-09-30 09:55 | Brad King | Steps to Reproduce Updated | bug_revision_view_page.php?rev_id=1277#r1277 | ||
2013-09-30 15:00 | Brad King | Note Added: 0033948 | |||
2013-09-30 15:00 | Brad King | Status | resolved => assigned | ||
2013-09-30 15:00 | Brad King | Resolution | fixed => open | ||
2013-09-30 15:02 | Brad King | Note Added: 0033949 | |||
2013-09-30 15:06 | Brad King | Note Added: 0033950 | |||
2013-09-30 15:07 | Brad King | Status | assigned => resolved | ||
2013-09-30 15:07 | Brad King | Resolution | open => fixed | ||
2014-03-05 09:58 | Robert Maynard | Note Added: 0035272 | |||
2014-03-05 09:58 | Robert Maynard | Status | resolved => closed |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|