diff options
Diffstat (limited to 'source/compiler-core/slang-artifact-util.cpp')
| -rw-r--r-- | source/compiler-core/slang-artifact-util.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/source/compiler-core/slang-artifact-util.cpp b/source/compiler-core/slang-artifact-util.cpp index f93924afb..fb3157522 100644 --- a/source/compiler-core/slang-artifact-util.cpp +++ b/source/compiler-core/slang-artifact-util.cpp @@ -23,10 +23,15 @@ namespace Slang { return ArtifactContainer::create(ArtifactDesc::make(ArtifactKind::Container, ArtifactPayload::CompileResults)); } -/* static */ComPtr<IArtifact> ArtifactUtil::createArtifactForCompileTarget(SlangCompileTarget target) +/* static */ComPtr<IArtifact> ArtifactUtil::createArtifact(const ArtifactDesc& desc, const char* name) { - auto desc = ArtifactDescUtil::makeDescFromCompileTarget(target); + auto artifact = createArtifact(desc); + artifact->setName(name); + return artifact; +} +/* static */ComPtr<IArtifact> ArtifactUtil::createArtifact(const ArtifactDesc& desc) +{ if (isDerivedFrom(desc.kind, ArtifactKind::Container)) { auto container = ArtifactContainer::create(desc); @@ -41,6 +46,12 @@ namespace Slang { } } +/* static */ComPtr<IArtifact> ArtifactUtil::createArtifactForCompileTarget(SlangCompileTarget target) +{ + auto desc = ArtifactDescUtil::makeDescFromCompileTarget(target); + return createArtifact(desc); +} + /* static */bool ArtifactUtil::isSignificant(IArtifact* artifact, void* data) { SLANG_UNUSED(data); @@ -79,6 +90,11 @@ namespace Slang { return true; } +/* static */IArtifact* ArtifactUtil::findSignificant(IArtifact* artifact) +{ + return artifact->findArtifactByPredicate(IArtifact::FindStyle::SelfOrChildren, &ArtifactUtil::isSignificant, nullptr); +} + /* static */String ArtifactUtil::getBaseName(IArtifact* artifact) { if (auto fileRep = findRepresentation<IFileArtifactRepresentation>(artifact)) |
