aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/common')
-rw-r--r--src/main/java/com/google/devtools/common/options/OptionsParser.java10
-rw-r--r--src/main/java/com/google/devtools/common/options/OptionsProvider.java14
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.