From ea6bb8293f50ecc93f42b6ea6525baa0252712a5 Mon Sep 17 00:00:00 2001 From: Peter Ivanyi Date: Wed, 3 May 2017 00:07:26 +0100 Subject: VS: Use tool-specific flag table for COMPILE_FLAGS parsing Fixes: #14710 --- Source/cmVisualStudio10TargetGenerator.cxx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 5a09718..c81ba7a 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1943,9 +1943,24 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags( hasFlags = true; cmGlobalVisualStudio10Generator* gg = static_cast(this->GlobalGenerator); + cmIDEFlagTable const* flagtable = CM_NULLPTR; + const std::string& srclang = source->GetLanguage(); + if (srclang == "C" || srclang == "CXX") { + flagtable = gg->GetClFlagTable(); + } else if (srclang == "ASM_MASM" && + this->GlobalGenerator->IsMasmEnabled()) { + flagtable = gg->GetMasmFlagTable(); + } else if (lang == "ASM_NASM" && + this->GlobalGenerator->IsNasmEnabled()) { + flagtable = gg->GetNasmFlagTable(); + } else if (srclang == "RC") { + flagtable = gg->GetRcFlagTable(); + } else if (srclang == "CSharp") { + flagtable = gg->GetCSharpFlagTable(); + } cmVisualStudioGeneratorOptions clOptions( this->LocalGenerator, cmVisualStudioGeneratorOptions::Compiler, - gg->GetClFlagTable(), 0, this); + flagtable, 0, this); if (compileAs) { clOptions.AddFlag("CompileAs", compileAs); } -- cgit v0.12