summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-options.cpp')
-rw-r--r--source/slang/slang-options.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/source/slang/slang-options.cpp b/source/slang/slang-options.cpp
index 3ce107135..c269b10c4 100644
--- a/source/slang/slang-options.cpp
+++ b/source/slang/slang-options.cpp
@@ -530,6 +530,10 @@ void initCommandOptions(CommandOptions& options)
nullptr,
"Preserve all resource parameters in the output code, even if they are not used by the "
"shader."},
+ {OptionKind::TypeConformance,
+ "-conformance",
+ "-conformance <typeName>:<interfaceName>[=<sequentialID>]",
+ "Include additional type conformance during linking for dynamic dispatch."},
{OptionKind::EmitReflectionJSON,
"-reflection-json",
"reflection-json <path>",
@@ -2736,6 +2740,17 @@ SlangResult OptionsParser::_parse(int argc, char const* const* argv)
m_compileRequest->addSearchPath(String(slice).getBuffer());
break;
}
+ case OptionKind::TypeConformance:
+ {
+ if (!m_reader.hasArg())
+ break;
+ CommandLineArg operand;
+ SLANG_RETURN_ON_FAIL(m_reader.expectArg(operand));
+ auto unquoted =
+ StringEscapeUtil::maybeUnquoteCommandLineArg(operand.value.getUnownedSlice());
+ linkage->m_optionSet.add(OptionKind::TypeConformance, unquoted);
+ break;
+ }
case OptionKind::Output:
{
//