summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-link.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2022-04-15 15:46:45 -0400
committerGitHub <noreply@github.com>2022-04-15 15:46:45 -0400
commitd939773a9127bccbbd22903eb5b5620ad7127d37 (patch)
treec9610f4891ba99f70bb5493ebca2daf16da88722 /source/slang/slang-ir-link.cpp
parentac81614974700806e8257b8483a0ba97b925971a (diff)
DXIL library support and Artifact type (#2186)
* #include an absolute path didn't work - because paths were taken to always be relative. * Compile to a dxil library. * Added CompileProduct. * Support handling of ModuleLibrary. * CacheBehavior -> Cache * Use CompileProduct for -r references. * CompileProduct -> Artifact. * Determining an artifact type on binding. * Determine binary linkability. * Added Artifact::exists. * Added ArtifactKeep. * Small fixes. * Small improvements to Artifact. * Add zip extension. * Fix some comments.
Diffstat (limited to 'source/slang/slang-ir-link.cpp')
-rw-r--r--source/slang/slang-ir-link.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/source/slang/slang-ir-link.cpp b/source/slang/slang-ir-link.cpp
index 45b9a842f..b03d48764 100644
--- a/source/slang/slang-ir-link.cpp
+++ b/source/slang/slang-ir-link.cpp
@@ -6,6 +6,7 @@
#include "slang-ir-insts.h"
#include "slang-mangle.h"
#include "slang-ir-string-hash.h"
+#include "slang-artifact.h"
namespace Slang
{
@@ -1387,8 +1388,14 @@ LinkedIR linkIR(
{
irModules.add(irModule);
});
- irModules.addRange(linkage->m_libModules.getBuffer()->readRef(), linkage->m_libModules.getCount());
-
+ for (Artifact* artifact : linkage->m_libModules)
+ {
+ ModuleLibrary* library = artifact->findObjectInstance<ModuleLibrary>();
+ if (library)
+ {
+ irModules.addRange(library->m_modules.getBuffer()->readRef(), library->m_modules.getCount());
+ }
+ }
// Add any modules that were loaded as libraries
for (IRModule* irModule : irModules)