[CMake] Parallel build with custom command
Brad King
brad.king at kitware.com
Tue Oct 7 14:34:25 EDT 2014
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
More information about the CMake
mailing list