On 10/07/2014 12:14 PM, Ruslan Baratov via CMake wrote: > Yes, that's why second file always modified. So assume I have a script > that generates a lot of *.cpp files. I modify script so it only change > one file, one file modified - one file recompiled. So what I trying to > do is optimization that can be checked by rule: "if there is at least > one file from OUTPUT list that is newer then any file from DEPENDS list > - you don't need to rerun custom command". > > So this optimization is not possible (?) custom command must modify all > the files from OUTPUT list?
Build systems will re-run a rule if any input is newer than any output. One way to achieve what you want is to not list the .cpp files as outputs. Instead just use some cpp-generated.stamp file as the output that you do touch every time. The .cpp files will be generated as side-effects, and the rule will re-run only when the input changes regardless of whether the generated .cpp files change. FYI, there is an open issue for Ninja support of this case: http://www.cmake.org/Bug/view.php?id=14963 -Brad -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake
