diff options
author | Brad King <brad.king@kitware.com> | 2016-04-05 20:20:28 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-04-05 20:20:28 (GMT) |
commit | add7abc8352b87184579401cb2493c72e07aa212 (patch) | |
tree | 365a148a216223f3100be01b1be7a02b4d1877ca /Source/cmLocalNinjaGenerator.cxx | |
parent | ff805113c766371677b97d94cd3092cf6ff0bbf6 (diff) | |
download | CMake-add7abc8352b87184579401cb2493c72e07aa212.zip CMake-add7abc8352b87184579401cb2493c72e07aa212.tar.gz CMake-add7abc8352b87184579401cb2493c72e07aa212.tar.bz2 |
Ninja: Restat custom command byproducts even with a SYMBOLIC output (#16049)
The change in commit v3.5.0-rc1~198^2 (Ninja: Always re-run custom
commands that have symbolic dependencies, 2015-11-19) broke the
byproducts feature added by commit v3.2.0-rc1~340^2~2 (Add an option for
explicit BYPRODUCTS of custom commands, 2014-11-13) when SYMBOLIC
outputs also appear. This case occurs with AUTORCC-generated custom
targets because the output is SYMBOLIC (to always run) and the generated
file is a byproduct (for restat so dependents do not run unnecessarily).
The two use cases conflict because Ninja does not support per-output
restat. Favor restat whenever byproducts are present because it is
required for byproducts to work correctly. In use cases where we want
an always-run chain we simply will not be able to also use byproducts.
Diffstat (limited to 'Source/cmLocalNinjaGenerator.cxx')
-rw-r--r-- | Source/cmLocalNinjaGenerator.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index 6a5949c..2d13507 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -444,7 +444,7 @@ cmLocalNinjaGenerator::WriteCustomCommandBuildStatement( this->ConstructComment(ccg), "Custom command for " + ninjaOutputs[0], cc->GetUsesTerminal(), - /*restat*/!symbolic, + /*restat*/!symbolic || !byproducts.empty(), ninjaOutputs, ninjaDeps, orderOnlyDeps); |