summaryrefslogtreecommitdiffstats
path: root/source/slangc
diff options
context:
space:
mode:
Diffstat (limited to 'source/slangc')
-rw-r--r--source/slangc/main.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/source/slangc/main.cpp b/source/slangc/main.cpp
index 2fe9d19a1..3a01c07e7 100644
--- a/source/slangc/main.cpp
+++ b/source/slangc/main.cpp
@@ -66,6 +66,16 @@ static SlangResult _compile(SlangCompileRequest* compileRequest, int argc, const
return res;
}
+bool shouldEmbedPrelude(const char* const* argv, int argc)
+{
+ for (int i = 0; i < argc; i++)
+ {
+ if (UnownedStringSlice(argv[i]) == "-embed-prelude")
+ return true;
+ }
+ return false;
+}
+
SLANG_TEST_TOOL_API SlangResult innerMain(StdWriters* stdWriters, slang::IGlobalSession* sharedSession, int argc, const char*const* argv)
{
StdWriters::setSingleton(stdWriters);
@@ -86,7 +96,8 @@ SLANG_TEST_TOOL_API SlangResult innerMain(StdWriters* stdWriters, slang::IGlobal
SLANG_RETURN_ON_FAIL(slang_createGlobalSession(SLANG_API_VERSION, session.writeRef()));
}
- TestToolUtil::setSessionDefaultPreludeFromExePath(argv[0], session);
+ if (!shouldEmbedPrelude(argv, argc))
+ TestToolUtil::setSessionDefaultPreludeFromExePath(argv[0], session);
SlangCompileRequest* compileRequest = spCreateCompileRequest(session);
compileRequest->addSearchPath(Path::getParentDirectory(Path::getExecutablePath()).getBuffer());