summaryrefslogtreecommitdiff
path: root/source/compiler-core/slang-downstream-dep1.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2022-08-26 20:32:53 -0400
committerGitHub <noreply@github.com>2022-08-26 20:32:53 -0400
commit5c2c2cfc9918bb43225159e67a851e196e17759a (patch)
tree216009d02afe9dc17b074fdd394141ef71472268 /source/compiler-core/slang-downstream-dep1.cpp
parentef067bef2f2188a4b3c420cbcd8d223874888ed2 (diff)
DownstreamCompileOptions using POD types (#2381)
* #include an absolute path didn't work - because paths were taken to always be relative. * Make DownstreamCompileOptions use POD types. * CharSliceAllocator -> SliceAllocator Added SliceConverter CharSliceCaster -> SliceCaster * First attempt at zero terminating around blobs. * Fix clang warning. * Add SlangTerminatedChars Make Blob implementations support it. Make most blobs 'terminated'. * Fix bug setting up sourceFiles for CommandLineDownstreamCompiler. * Traffic in TerminatedCharSlice for sourceFiles. Use ArtifactDesc to generate temporary file names for source. * Fix typo in testing for shared library/C++.
Diffstat (limited to 'source/compiler-core/slang-downstream-dep1.cpp')
-rw-r--r--source/compiler-core/slang-downstream-dep1.cpp30
1 files changed, 16 insertions, 14 deletions
diff --git a/source/compiler-core/slang-downstream-dep1.cpp b/source/compiler-core/slang-downstream-dep1.cpp
index 0745fd9dc..ac66b4502 100644
--- a/source/compiler-core/slang-downstream-dep1.cpp
+++ b/source/compiler-core/slang-downstream-dep1.cpp
@@ -7,6 +7,8 @@
#include "../core/slang-castable-util.h"
+#include "slang-slice-allocator.h"
+
namespace Slang
{
@@ -96,7 +98,7 @@ DownstreamCompilerAdapter_Dep1::DownstreamCompilerAdapter_Dep1(DownstreamCompile
SlangResult DownstreamCompilerAdapter_Dep1::compile(const CompileOptions& inOptions, IArtifact** outArtifact)
{
typedef DownstreamCompileOptions_Dep1::SomeEnum SomeEnum;
-
+
// Convert to the Deps1 compile options
DownstreamCompileOptions_Dep1 options;
@@ -112,27 +114,27 @@ SlangResult DownstreamCompilerAdapter_Dep1::compile(const CompileOptions& inOpti
options.flags = inOptions.flags;
options.platform = SomeEnum(inOptions.platform);
- options.modulePath = inOptions.modulePath;
+ options.modulePath = asString(inOptions.modulePath);
for (auto& src : inOptions.defines)
{
DownstreamCompileOptions_Dep1::Define dst;
- dst.nameWithSig = src.nameWithSig;
- dst.value = src.value;
+ dst.nameWithSig = asStringSlice(src.nameWithSig);
+ dst.value = asStringSlice(src.value);
options.defines.add(dst);
}
- options.sourceContents = inOptions.sourceContents;
- options.sourceContentsPath = inOptions.sourceContentsPath;
+ options.sourceContents = asStringSlice(inOptions.sourceContents);
+ options.sourceContentsPath = asStringSlice(inOptions.sourceContentsPath);
- options.sourceFiles = inOptions.sourceFiles;
+ options.sourceFiles = SliceConverter::toList(inOptions.sourceFiles);
- options.includePaths = inOptions.includePaths;
- options.libraryPaths = inOptions.libraryPaths;
+ options.includePaths = SliceConverter::toList(inOptions.includePaths);
+ options.libraryPaths = SliceConverter::toList(inOptions.libraryPaths);
- options.libraries = inOptions.libraries;
+ options.libraries = SliceConverter::toComPtrList(inOptions.libraries);
for (auto& src : inOptions.requiredCapabilityVersions)
{
@@ -148,12 +150,12 @@ SlangResult DownstreamCompilerAdapter_Dep1::compile(const CompileOptions& inOpti
options.requiredCapabilityVersions.add(capVer);
}
- options.entryPointName = inOptions.entryPointName;
- options.profileName = inOptions.profileName;
+ options.entryPointName = asStringSlice(inOptions.entryPointName);
+ options.profileName = asStringSlice(inOptions.profileName);
options.stage = inOptions.stage;
- options.compilerSpecificArguments = inOptions.compilerSpecificArguments;
+ options.compilerSpecificArguments = SliceConverter::toList(inOptions.compilerSpecificArguments);
options.fileSystemExt = inOptions.fileSystemExt;
options.sourceManager = inOptions.sourceManager;
@@ -161,7 +163,7 @@ SlangResult DownstreamCompilerAdapter_Dep1::compile(const CompileOptions& inOpti
RefPtr<DownstreamCompileResult_Dep1> result;
SLANG_RETURN_ON_FAIL(m_dep->compile(options, result));
- typedef CharSliceCaster Caster;
+ typedef SliceCaster Caster;
ComPtr<IArtifact> artifact = ArtifactUtil::createArtifactForCompileTarget(options.targetType);