diff options
Diffstat (limited to 'src/main/java/com/google/devtools/common')
-rw-r--r-- | src/main/java/com/google/devtools/common/options/OptionsParser.java | 10 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/common/options/OptionsProvider.java | 14 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/common/options/OptionsParser.java b/src/main/java/com/google/devtools/common/options/OptionsParser.java index 6f1d7b6479..e1c7cbb8a0 100644 --- a/src/main/java/com/google/devtools/common/options/OptionsParser.java +++ b/src/main/java/com/google/devtools/common/options/OptionsParser.java @@ -176,6 +176,7 @@ public class OptionsParser implements OptionsProvider { private final OptionsParserImpl impl; private final List<String> residue = new ArrayList<String>(); private boolean allowResidue = true; + private Map<String, Object> skylarkOptions = new HashMap<>(); OptionsParser(OptionsData optionsData) { impl = new OptionsParserImpl(optionsData); @@ -191,6 +192,15 @@ public class OptionsParser implements OptionsProvider { this.allowResidue = allowResidue; } + @Override + public Map<String, Object> getSkylarkOptions() { + return skylarkOptions; + } + + void setSkylarkOptions(Map<String, Object> skylarkOptions) { + this.skylarkOptions = skylarkOptions; + } + /** * Indicates whether or not the parser will allow long options with a * single-dash, instead of the usual double-dash, too, eg. -example instead of just --example. diff --git a/src/main/java/com/google/devtools/common/options/OptionsProvider.java b/src/main/java/com/google/devtools/common/options/OptionsProvider.java index ece5d5d2ed..31685648fa 100644 --- a/src/main/java/com/google/devtools/common/options/OptionsProvider.java +++ b/src/main/java/com/google/devtools/common/options/OptionsProvider.java @@ -15,6 +15,7 @@ package com.google.devtools.common.options; import java.util.List; +import java.util.Map; /** * A read-only interface for options parser results, which does not allow any @@ -22,6 +23,19 @@ import java.util.List; */ public interface OptionsProvider extends OptionsClassProvider { + + /** + * Returns the skylark options in a name:value map. + * + * <p>These follow the basics of the option syntax, --<name>=<value> but are parsed and stored + * differently than native options based on <name> starting with "//". This is a sufficient + * demarcation between skylark flags and native flags for now since all skylark flags are targets + * and are identified by their package path. But in the future when we implement short names for + * skylark options, this will need to change. + */ + Map<String, Object> getSkylarkOptions(); + + /** * Returns an immutable copy of the residue, that is, the arguments that * have not been parsed. |