|
|
@@ -159,6 +159,7 @@ cmVisualStudio10TargetGenerator(cmTarget* target,
|
|
|
this->GUID = this->GlobalGenerator->GetGUID(this->Name.c_str());
|
|
|
this->Platform = gg->GetPlatformName();
|
|
|
this->MSTools = true;
|
|
|
+ this->TargetCompileAsWinRT = false;
|
|
|
this->BuildFileStream = 0;
|
|
|
this->IsMissingFiles = false;
|
|
|
this->DefaultArtifactDir =
|
|
|
@@ -1414,6 +1415,7 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
|
|
|
compileAs = "CompileAsC";
|
|
|
}
|
|
|
}
|
|
|
+ bool noWinRT = this->TargetCompileAsWinRT && lang == "C";
|
|
|
bool hasFlags = false;
|
|
|
// for the first time we need a new line if there is something
|
|
|
// produced here.
|
|
|
@@ -1447,7 +1449,7 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
|
|
|
}
|
|
|
// if we have flags or defines for this config then
|
|
|
// use them
|
|
|
- if(!flags.empty() || !configDefines.empty() || compileAs)
|
|
|
+ if(!flags.empty() || !configDefines.empty() || compileAs || noWinRT)
|
|
|
{
|
|
|
(*this->BuildFileStream ) << firstString;
|
|
|
firstString = ""; // only do firstString once
|
|
|
@@ -1460,6 +1462,10 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
|
|
|
{
|
|
|
clOptions.AddFlag("CompileAs", compileAs);
|
|
|
}
|
|
|
+ if(noWinRT)
|
|
|
+ {
|
|
|
+ clOptions.AddFlag("CompileAsWinRT", "false");
|
|
|
+ }
|
|
|
clOptions.Parse(flags.c_str());
|
|
|
clOptions.AddDefines(configDefines.c_str());
|
|
|
clOptions.SetConfiguration((*config).c_str());
|
|
|
@@ -1711,6 +1717,13 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions(
|
|
|
clOptions.AddFlag("CompileAsWinRT", "false");
|
|
|
}
|
|
|
}
|
|
|
+ if(const char* winRT = clOptions.GetFlag("CompileAsWinRT"))
|
|
|
+ {
|
|
|
+ if(cmSystemTools::IsOn(winRT))
|
|
|
+ {
|
|
|
+ this->TargetCompileAsWinRT = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
this->ClOptions[configName] = pOptions.release();
|