diff options
author | Brad King <brad.king@kitware.com> | 2020-01-28 18:49:43 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-01-28 18:52:05 (GMT) |
commit | 58b06746879aff8edfd832d89f8a832fb3ecbfb8 (patch) | |
tree | 1767d716ab654edf179151c3940819bd1c4ed126 /Source | |
parent | 5b43aa775507c974284bbae2e6bd13e11caec80d (diff) | |
download | CMake-58b06746879aff8edfd832d89f8a832fb3ecbfb8.zip CMake-58b06746879aff8edfd832d89f8a832fb3ecbfb8.tar.gz CMake-58b06746879aff8edfd832d89f8a832fb3ecbfb8.tar.bz2 |
VS: Tell VS 16.4 not to verify SYMBOLIC custom command inputs
Extend the fix from commit 0578239d3a (VS: Tell VS 16.4 not to verify
SYMBOLIC custom command outputs, 2019-09-23, v3.15.4~2^2) to apply to
SYMBOLIC *inputs* too. This is needed when there is a chain of custom
commands that use symbolic paths for ordering.
Fixes: #20179
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 7a90176..fa102f8 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1404,6 +1404,7 @@ void cmVisualStudio10TargetGenerator::WriteCustomRule( std::string comment = lg->ConstructComment(ccg); comment = cmVS10EscapeComment(comment); std::string script = lg->ConstructScript(ccg); + bool symbolic = false; // input files for custom command std::stringstream additional_inputs; { @@ -1430,6 +1431,12 @@ void cmVisualStudio10TargetGenerator::WriteCustomRule( ConvertToWindowsSlash(dep); additional_inputs << sep << dep; sep = ";"; + if (!symbolic) { + if (cmSourceFile* sf = this->Makefile->GetSource( + dep, cmSourceFileLocationKind::Known)) { + symbolic = sf->GetPropertyAsBool("SYMBOLIC"); + } + } } } if (this->ProjectType != csproj) { @@ -1438,7 +1445,6 @@ void cmVisualStudio10TargetGenerator::WriteCustomRule( } // output files for custom command std::stringstream outputs; - bool symbolic = false; { const char* sep = ""; for (std::string const& o : ccg.GetOutputs()) { |