summaryrefslogtreecommitdiffstats
path: root/source/slang/compiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/compiler.cpp')
-rw-r--r--source/slang/compiler.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/source/slang/compiler.cpp b/source/slang/compiler.cpp
index 1e514812a..37e9827f8 100644
--- a/source/slang/compiler.cpp
+++ b/source/slang/compiler.cpp
@@ -181,31 +181,33 @@ namespace Slang
}
- bool hasCodeGenTarget(Session* session, CodeGenTarget target)
+ SlangResult checkCompileTargetSupport(Session* session, CodeGenTarget target)
{
switch (target)
{
- case CodeGenTarget::Unknown: return false;
- case CodeGenTarget::None: return true;
+ case CodeGenTarget::None:
+ {
+ return SLANG_OK;
+ }
case CodeGenTarget::GLSL:
case CodeGenTarget::GLSL_Vulkan:
case CodeGenTarget::GLSL_Vulkan_OneDesc:
{
// Can always output GLSL
- return true;
+ return SLANG_OK;
}
case CodeGenTarget::HLSL:
{
// Can always output HLSL
- return true;
+ return SLANG_OK;
}
case CodeGenTarget::SPIRVAssembly:
case CodeGenTarget::SPIRV:
{
#if SLANG_ENABLE_GLSLANG_SUPPORT
- return session->getOrLoadSharedLibrary(Slang::SharedLibraryType::Glslang, nullptr) != nullptr;
+ return session->getOrLoadSharedLibrary(Slang::SharedLibraryType::Glslang, nullptr) ? SLANG_OK : SLANG_E_NOT_FOUND;
#else
- return false;
+ return SLANG_E_NOT_IMPLEMENTED;
#endif
}
case CodeGenTarget::DXBytecode:
@@ -213,9 +215,9 @@ namespace Slang
{
#if SLANG_ENABLE_DXBC_SUPPORT
// Must have fxc
- return session->getOrLoadSharedLibrary(SharedLibraryType::Fxc, nullptr) != nullptr;
+ return session->getOrLoadSharedLibrary(SharedLibraryType::Fxc, nullptr) ? SLANG_OK : SLANG_E_NOT_FOUND;
#else
- return false;
+ return SLANG_E_NOT_IMPLEMENTED;
#endif
}
@@ -224,19 +226,18 @@ namespace Slang
{
#if SLANG_ENABLE_DXIL_SUPPORT
// Must have dxc
- return session->getOrLoadSharedLibrary(SharedLibraryType::Dxc, nullptr) &&
- session->getOrLoadSharedLibrary(SharedLibraryType::Dxil, nullptr);
+ return (session->getOrLoadSharedLibrary(SharedLibraryType::Dxc, nullptr) &&
+ session->getOrLoadSharedLibrary(SharedLibraryType::Dxil, nullptr)) ? SLANG_OK : SLANG_E_NOT_FOUND;
#else
- return false;
+ return SLANG_E_NOT_IMPLEMENTED;
#endif
}
-
- default:
- {
- SLANG_ASSERT(!"Unhandled target");
- return false;
- }
+
+ default: break;
}
+
+ SLANG_ASSERT(!"Unhandled target");
+ return SLANG_FAIL;
}
//