diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-01-11 15:24:11 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-11 15:24:11 -0500 |
| commit | 723796a0a0fed8e5b8c3222b1c90443189113098 (patch) | |
| tree | 41fa039f2f2fcec4c24746203ad119a8054f021a /source/slang/slang-options.cpp | |
| parent | 5554777188225266e2295db3588f6cb17cae0c4d (diff) | |
LZ4 compression support (#1654)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Testing out use of lz4.
* Added ICompressionSystem, and LZ4 implementation.
* Add support for deflate compression.
Simplify compression interface - to make more easily work across apis.
* WIP on CompressedFileSystem.
* ImplicitDirectoryCollector
* SubStringIndexMap - > StringSliceIndexMap.
* WIP save stdlib in different containers.
* Support for different archive types for stdlib.
* Fix project.
* CompressedFileSystem -> ArchiveFileSystem.
Added CompressionSystemType::None
* Added ArchiveFileSystem
* Fix problem RiffFileSystem load withoug compression system.
* Test archive types.
Improve diagnostic message.
* Fix typo in testing file system archives.
* Split out archive detection.
* Fix gcc warning issue.
* Fix warning.
* RiffArchiveFileSystem -> RiffFileSystem
Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'source/slang/slang-options.cpp')
| -rw-r--r-- | source/slang/slang-options.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/source/slang/slang-options.cpp b/source/slang/slang-options.cpp index a89818c4f..d28b50b88 100644 --- a/source/slang/slang-options.cpp +++ b/source/slang/slang-options.cpp @@ -434,6 +434,9 @@ struct OptionsParser SlangMatrixLayoutMode defaultMatrixLayoutMode = SLANG_MATRIX_LAYOUT_MODE_UNKNOWN; + // The default archive type is zip + SlangArchiveType archiveType = SLANG_ARCHIVE_TYPE_ZIP; + bool hasLoadedRepro = false; char const* const* argCursor = &argv[0]; @@ -463,6 +466,18 @@ struct OptionsParser { SLANG_RETURN_ON_FAIL(session->compileStdLib()); } + else if (argStr == "-archive-type") + { + String archiveTypeName; + SLANG_RETURN_ON_FAIL(tryReadCommandLineArgument(sink, arg, &argCursor, argEnd, archiveTypeName)); + + archiveType = TypeTextUtil::findArchiveType(archiveTypeName.getUnownedSlice()); + if (archiveType == SLANG_ARCHIVE_TYPE_UNDEFINED) + { + sink->diagnose(SourceLoc(), Diagnostics::unknownArchiveType, archiveTypeName); + return SLANG_FAIL; + } + } else if (argStr == "-save-stdlib") { String fileName; @@ -470,7 +485,7 @@ struct OptionsParser ComPtr<ISlangBlob> blob; - SLANG_RETURN_ON_FAIL(session->saveStdLib(blob.writeRef())); + SLANG_RETURN_ON_FAIL(session->saveStdLib(archiveType, blob.writeRef())); SLANG_RETURN_ON_FAIL(File::writeAllBytes(fileName, blob->getBufferPointer(), blob->getBufferSize())); } else if (argStr == "-save-stdlib-bin-source") @@ -480,7 +495,7 @@ struct OptionsParser ComPtr<ISlangBlob> blob; - SLANG_RETURN_ON_FAIL(session->saveStdLib(blob.writeRef())); + SLANG_RETURN_ON_FAIL(session->saveStdLib(archiveType, blob.writeRef())); StringBuilder builder; StringWriter writer(&builder, 0); |
