diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2023-03-17 11:05:15 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-17 11:05:15 -0400 |
| commit | 8a61b9dd0ca729df894dad4c89c6ce3bf39ef0be (patch) | |
| tree | b7f3da5d30772ba1497f14cdeb39935225183bbb /source/compiler-core/slang-artifact-desc-util.cpp | |
| parent | 9476d4543f4336a66308e55f722b0b0b2bd69dd2 (diff) | |
Support for producing SourceMap on emit (#2707)
* #include an absolute path didn't work - because paths were taken to always be relative.
* WIP source map.
* Split out handling of RttiTypeFuncs to a map type.
* Make RttiTypeFuncsMap hold default impls.
* Slightly more sophisticated RttiTypeFuncsMap
* Source map decoding.
* Fix tabs.
* Fix asserts due to negative values.
* Use less obscure mechanisms in SourceMap.
* Source map decoding.
Simplifying SourceMap usage.
* First attempt at ouputting a source map as part of emit.
* Added support for -source-map option. SourceMap is added to the artifact.
Diffstat (limited to 'source/compiler-core/slang-artifact-desc-util.cpp')
| -rw-r--r-- | source/compiler-core/slang-artifact-desc-util.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/compiler-core/slang-artifact-desc-util.cpp b/source/compiler-core/slang-artifact-desc-util.cpp index fff68738c..ee014daf0 100644 --- a/source/compiler-core/slang-artifact-desc-util.cpp +++ b/source/compiler-core/slang-artifact-desc-util.cpp @@ -223,7 +223,8 @@ SLANG_HIERARCHICAL_ENUM(ArtifactKind, SLANG_ARTIFACT_KIND, SLANG_ARTIFACT_KIND_E x(Diagnostics, Metadata) \ x(Miscellaneous, Base) \ x(Log, Miscellaneous) \ - x(Lock, Miscellaneous) + x(Lock, Miscellaneous) \ + x(SourceMap, Base) #define SLANG_ARTIFACT_PAYLOAD_ENTRY(TYPE, PARENT) { Index(ArtifactPayload::TYPE), Index(ArtifactPayload::PARENT), #TYPE }, @@ -550,6 +551,13 @@ static const KindExtension g_cpuKindExts[] = return ArtifactDesc::make(ArtifactKind::Assembly, ArtifactPayload::HostCPU); } + // TODO(JS): Unfortunately map extension is also used from output for linkage from + // Visual Studio. It's used here for source map. + if (slice == toSlice("map")) + { + return ArtifactDesc::make(ArtifactKind::Text, ArtifactPayload::SourceMap); + } + if (slice == toSlice("pdb")) { // Program database @@ -621,6 +629,7 @@ static UnownedStringSlice _getPayloadExtension(ArtifactPayload payload) case Payload::MetalAIR: return toSlice("air"); case Payload::PdbDebugInfo: return toSlice("pdb"); + case Payload::SourceMap: return toSlice("map"); default: break; } |
