From d939773a9127bccbbd22903eb5b5620ad7127d37 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 15 Apr 2022 15:46:45 -0400 Subject: 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. --- source/slang/slang-ir-link.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'source/slang/slang-ir-link.cpp') 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(); + 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) -- cgit v1.2.3