The following issue has been SUBMITTED. ====================================================================== http://public.kitware.com/Bug/view.php?id=14446 ====================================================================== Reported By: Stephen Kelly Assigned To: Brad King ====================================================================== Project: CMake Issue ID: 14446 Category: CMake Reproducibility: always Severity: minor Priority: normal Status: assigned Target Version: CMake 2.8.12 ====================================================================== Date Submitted: 2013-09-28 10:26 EDT Last Modified: 2013-09-28 10:26 EDT ====================================================================== Summary: 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. ====================================================================== 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 ====================================================================== -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
