|
|
@@ -1602,6 +1602,8 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf)
|
|
|
std::string shaderEntryPoint;
|
|
|
std::string shaderModel;
|
|
|
std::string shaderAdditionalFlags;
|
|
|
+ std::string shaderDisableOptimizations;
|
|
|
+ std::string shaderEnableDebug;
|
|
|
std::string outputHeaderFile;
|
|
|
std::string variableName;
|
|
|
std::string settingsGenerator;
|
|
|
@@ -1668,6 +1670,16 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf)
|
|
|
shaderAdditionalFlags = saf;
|
|
|
toolHasSettings = true;
|
|
|
}
|
|
|
+ // Figure out if debug information should be generated
|
|
|
+ if (const char* sed = sf->GetProperty("VS_SHADER_ENABLE_DEBUG")) {
|
|
|
+ shaderEnableDebug = cmSystemTools::IsOn(sed) ? "true" : "false";
|
|
|
+ toolHasSettings = true;
|
|
|
+ }
|
|
|
+ // Figure out if optimizations should be disabled
|
|
|
+ if (const char* sdo = sf->GetProperty("VS_SHADER_DISABLE_OPTIMIZATIONS")) {
|
|
|
+ shaderDisableOptimizations = cmSystemTools::IsOn(sdo) ? "true" : "false";
|
|
|
+ toolHasSettings = true;
|
|
|
+ }
|
|
|
} else if (ext == "jpg" || ext == "png") {
|
|
|
tool = "Image";
|
|
|
} else if (ext == "resw") {
|
|
|
@@ -1810,6 +1822,16 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf)
|
|
|
this->WriteString("</VariableName>\n", 0);
|
|
|
}
|
|
|
}
|
|
|
+ if (!shaderEnableDebug.empty()) {
|
|
|
+ this->WriteString("<EnableDebuggingInformation>", 3);
|
|
|
+ (*this->BuildFileStream) << cmVS10EscapeXML(shaderEnableDebug)
|
|
|
+ << "</EnableDebuggingInformation>\n";
|
|
|
+ }
|
|
|
+ if (!shaderDisableOptimizations.empty()) {
|
|
|
+ this->WriteString("<DisableOptimizations>", 3);
|
|
|
+ (*this->BuildFileStream) << cmVS10EscapeXML(shaderDisableOptimizations)
|
|
|
+ << "</DisableOptimizations>\n";
|
|
|
+ }
|
|
|
if (!shaderAdditionalFlags.empty()) {
|
|
|
this->WriteString("<AdditionalOptions>", 3);
|
|
|
(*this->BuildFileStream) << cmVS10EscapeXML(shaderAdditionalFlags)
|