diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2022-08-26 20:32:53 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-26 20:32:53 -0400 |
| commit | 5c2c2cfc9918bb43225159e67a851e196e17759a (patch) | |
| tree | 216009d02afe9dc17b074fdd394141ef71472268 /source/compiler-core/slang-downstream-dep1.cpp | |
| parent | ef067bef2f2188a4b3c420cbcd8d223874888ed2 (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.cpp | 30 |
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); |
