From 0b82e68f2f52847e4c14f1b22e6ef537b42f415a Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 4 Sep 2018 16:09:41 -0400 Subject: VS: Restore CMakeLists.txt references in each target The custom command de-duplication added by commit v3.12.0-rc1~171^2 (VS: Generate a custom command only in the least dependent target, 2018-03-23) accidentally also applied to the `CMakeLists.txt` file reference we put in each target. This file reference comes with a custom command that has no dependencies and that is safe to run repeatedly across multiple targets (via internal stamp checking). Therefore it should be excluded from the de-duplication so that `CMakeLists.txt` references appear in all targets for human reference. Fixes: #18310 --- Source/cmVisualStudio10TargetGenerator.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index eff915b..f472d8a 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1207,7 +1207,11 @@ void cmVisualStudio10TargetGenerator::WriteCustomCommands(Elem& e0) this->GeneratorTarget->GetName() != CMAKE_CHECK_BUILD_SYSTEM_TARGET) { if (cmSourceFile const* sf = this->LocalGenerator->CreateVCProjBuildRule()) { - this->WriteCustomCommand(e0, sf); + // Write directly rather than through WriteCustomCommand because + // we do not want the de-duplication and it has no dependencies. + if (cmCustomCommand const* command = sf->GetCustomCommand()) { + this->WriteCustomRule(e0, sf, *command); + } } } } -- cgit v0.12