diff options
author | Robert Goulet <robert.goulet@autodesk.com> | 2015-01-26 19:16:42 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-01-28 14:29:50 (GMT) |
commit | 4775c90145da7ec8a5a87ce5b8b88dc4fc8c1925 (patch) | |
tree | b170136fef685ce53b85e1c7637583f875333966 /Source/cmVisualStudio10TargetGenerator.cxx | |
parent | a47b904db242abb903a968bd6109bc8a07d3c39a (diff) | |
download | CMake-4775c90145da7ec8a5a87ce5b8b88dc4fc8c1925.zip CMake-4775c90145da7ec8a5a87ce5b8b88dc4fc8c1925.tar.gz CMake-4775c90145da7ec8a5a87ce5b8b88dc4fc8c1925.tar.bz2 |
VS: Add source file property to set extra hlsl shader flags
Create a VS_SHADER_FLAGS source file property so that we can set all
other Visual Studio .hlsl shader file compilation flags.
Diffstat (limited to 'Source/cmVisualStudio10TargetGenerator.cxx')
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index b265c0e..d2f6ffd 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1211,6 +1211,7 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf) std::string shaderType; std::string shaderEntryPoint; std::string shaderModel; + std::string shaderAdditionalFlags; std::string ext = cmSystemTools::LowerCase(sf->GetExtension()); if(ext == "hlsl") { @@ -1233,6 +1234,12 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf) shaderModel = sm; toolHasSettings = true; } + // Figure out if there's any additional flags to use + if (const char* saf = sf->GetProperty("VS_SHADER_FLAGS")) + { + shaderAdditionalFlags = saf; + toolHasSettings = true; + } } else if(ext == "jpg" || ext == "png") @@ -1342,6 +1349,12 @@ void cmVisualStudio10TargetGenerator::WriteExtraSource(cmSourceFile const* sf) (*this->BuildFileStream) << cmVS10EscapeXML(shaderModel) << "</ShaderModel>\n"; } + if(!shaderAdditionalFlags.empty()) + { + this->WriteString("<AdditionalOptions>", 3); + (*this->BuildFileStream) << cmVS10EscapeXML(shaderAdditionalFlags) + << "</AdditionalOptions>\n"; + } this->WriteString("</", 2); (*this->BuildFileStream) << tool << ">\n"; } |