diff options
| author | kaizhangNV <149626564+kaizhangNV@users.noreply.github.com> | 2024-06-03 14:04:33 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-03 14:04:33 -0700 |
| commit | 68bf31e586b9d1805c19dd42492086c7c780c2a4 (patch) | |
| tree | e8cfb49e9240dca211e12741d6541b1218a9c045 /source/slang | |
| parent | 753a524be885cf463fa6e60734aa739fcce1396f (diff) | |
Add an option to disable source map in obfuscation (#4260)
Add option "-disable-source-map" to disable the source map in obfuscation.
Diffstat (limited to 'source/slang')
| -rw-r--r-- | source/slang/slang-compiler-options.h | 5 | ||||
| -rw-r--r-- | source/slang/slang-lower-to-ir.cpp | 10 | ||||
| -rw-r--r-- | source/slang/slang-options.cpp | 2 |
3 files changed, 12 insertions, 5 deletions
diff --git a/source/slang/slang-compiler-options.h b/source/slang/slang-compiler-options.h index 221d0189f..e1ce21789 100644 --- a/source/slang/slang-compiler-options.h +++ b/source/slang/slang-compiler-options.h @@ -371,6 +371,11 @@ namespace Slang return !getBoolOption(CompilerOptionName::DisableNonEssentialValidations); } + bool shouldHaveSourceMap() + { + return !getBoolOption(CompilerOptionName::DisableSourceMap); + } + FloatingPointMode getFloatingPointMode() { return getEnumOption<FloatingPointMode>(CompilerOptionName::FloatingPointMode); diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp index 403e2a921..5c4196839 100644 --- a/source/slang/slang-lower-to-ir.cpp +++ b/source/slang/slang-lower-to-ir.cpp @@ -10984,13 +10984,13 @@ RefPtr<IRModule> generateIRForTranslationUnit( // eliminateDeadCode(module, dceOptions); + if (stripOptions.shouldStripNameHints && linkage->m_optionSet.shouldHaveSourceMap()) + { + // The obfuscated source map is stored on the module + obfuscateModuleLocs(module, compileRequest->getSourceManager()); + } } - if (linkage->m_optionSet.shouldObfuscateCode()) - { - // The obfuscated source map is stored on the module - obfuscateModuleLocs(module, compileRequest->getSourceManager()); - } // TODO: consider doing some more aggressive optimizations // (in particular specialization of generics) here, so diff --git a/source/slang/slang-options.cpp b/source/slang/slang-options.cpp index dcc0f521d..a51ea01fe 100644 --- a/source/slang/slang-options.cpp +++ b/source/slang/slang-options.cpp @@ -292,6 +292,7 @@ void initCommandOptions(CommandOptions& options) { OptionKind::IgnoreCapabilities,"-ignore-capabilities", nullptr, "Do not warn or error if capabilities are violated"}, { OptionKind::MinimumSlangOptimization, "-minimum-slang-optimization", nullptr, "Perform minimum code optimization in Slang to favor compilation time."}, { OptionKind::DisableNonEssentialValidations, "-disable-non-essential-validations", nullptr, "Disable non-essential IR validations such as use of uninitialized variables."}, + { OptionKind::DisableSourceMap, "-disable-source-map", nullptr, "Disable source mapping in the Obfuscation."}, { OptionKind::ModuleName, "-module-name", "-module-name <name>", "Set the module name to use when compiling multiple .slang source files into a single module."}, { OptionKind::Output, "-o", "-o <path>", @@ -1686,6 +1687,7 @@ SlangResult OptionsParser::_parse( case OptionKind::IgnoreCapabilities: case OptionKind::MinimumSlangOptimization: case OptionKind::DisableNonEssentialValidations: + case OptionKind::DisableSourceMap: case OptionKind::DefaultImageFormatUnknown: case OptionKind::Obfuscate: case OptionKind::OutputIncludes: |
