aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2017-12-12 07:55:15 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-12 07:57:19 -0800
commitd7f87aa4c3bbe1503d43b991551c2d1d156e52bb (patch)
tree9577f9332246e0ed174fa227f64dabfb1ee74767 /src/main/java/com/google/devtools/build/lib
parent916e303047300b1256dd10b58f4070aa8688281f (diff)
Add a new flag to disable glob tracking: --incompatible_disable_glob_tracking
RELNOTES: None. PiperOrigin-RevId: 178760403
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java7
4 files changed, 27 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index b03af4fe97..f7c28c8587 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -588,7 +588,12 @@ public final class PackageFactory {
}
GlobList<String> globList = GlobList.captureResults(includes, excludes, matches);
- return MutableList.copyOf(env, globList);
+ if (env.getSemantics().incompatibleDisableGlobTracking()) {
+ // Converting to ImmutableList will remove glob information from the list.
+ return MutableList.copyOf(env, ImmutableList.copyOf(globList));
+ } else {
+ return MutableList.copyOf(env, globList);
+ }
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
index f0ad5bb43f..29b3b5d0c2 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsCodec.java
@@ -46,6 +46,7 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics
codedOut.writeBoolNoTag(semantics.incompatibleDepsetIsNotIterable());
codedOut.writeBoolNoTag(semantics.incompatibleDepsetUnion());
codedOut.writeBoolNoTag(semantics.incompatibleDictLiteralHasNoDuplicates());
+ codedOut.writeBoolNoTag(semantics.incompatibleDisableGlobTracking());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowDictPlus());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowKeywordOnlyArgs());
codedOut.writeBoolNoTag(semantics.incompatibleDisallowToplevelIfStatement());
@@ -70,6 +71,7 @@ public final class SkylarkSemanticsCodec implements ObjectCodec<SkylarkSemantics
builder.incompatibleDepsetIsNotIterable(codedIn.readBool());
builder.incompatibleDepsetUnion(codedIn.readBool());
builder.incompatibleDictLiteralHasNoDuplicates(codedIn.readBool());
+ builder.incompatibleDisableGlobTracking(codedIn.readBool());
builder.incompatibleDisallowDictPlus(codedIn.readBool());
builder.incompatibleDisallowKeywordOnlyArgs(codedIn.readBool());
builder.incompatibleDisallowToplevelIfStatement(codedIn.readBool());
diff --git a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
index 8cc1e9e469..d588118588 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java
@@ -137,6 +137,17 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
public boolean incompatibleDictLiteralHasNoDuplicates;
@Option(
+ name = "incompatible_disable_glob_tracking",
+ defaultValue = "false",
+ category = "incompatible changes",
+ documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+ effectTags = {OptionEffectTag.UNKNOWN},
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
+ help = "If set to true, do not track the values of globs (this is used by rare specific cases"
+ )
+ public boolean incompatibleDisableGlobTracking;
+
+ @Option(
name = "incompatible_disallow_dict_plus",
defaultValue = "false",
category = "incompatible changes",
@@ -267,6 +278,7 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
.incompatibleDepsetIsNotIterable(incompatibleDepsetIsNotIterable)
.incompatibleDepsetUnion(incompatibleDepsetUnion)
.incompatibleDictLiteralHasNoDuplicates(incompatibleDictLiteralHasNoDuplicates)
+ .incompatibleDisableGlobTracking(incompatibleDisableGlobTracking)
.incompatibleDisallowDictPlus(incompatibleDisallowDictPlus)
.incompatibleDisallowKeywordOnlyArgs(incompatibleDisallowKeywordOnlyArgs)
.incompatibleDisallowToplevelIfStatement(incompatibleDisallowToplevelIfStatement)
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
index c0ebebe974..9a6f9159bf 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java
@@ -47,6 +47,9 @@ public abstract class SkylarkSemantics {
public abstract boolean incompatibleDepsetUnion();
public abstract boolean incompatibleDictLiteralHasNoDuplicates();
+
+ public abstract boolean incompatibleDisableGlobTracking();
+
public abstract boolean incompatibleDisallowDictPlus();
public abstract boolean incompatibleDisallowKeywordOnlyArgs();
public abstract boolean incompatibleDisallowToplevelIfStatement();
@@ -79,6 +82,7 @@ public abstract class SkylarkSemantics {
.incompatibleDepsetIsNotIterable(false)
.incompatibleDepsetUnion(false)
.incompatibleDictLiteralHasNoDuplicates(true)
+ .incompatibleDisableGlobTracking(false)
.incompatibleDisallowDictPlus(false)
.incompatibleDisallowKeywordOnlyArgs(true)
.incompatibleDisallowToplevelIfStatement(true)
@@ -104,6 +108,9 @@ public abstract class SkylarkSemantics {
public abstract Builder incompatibleDepsetUnion(boolean value);
public abstract Builder incompatibleDictLiteralHasNoDuplicates(boolean value);
+
+ public abstract Builder incompatibleDisableGlobTracking(boolean value);
+
public abstract Builder incompatibleDisallowDictPlus(boolean value);
public abstract Builder incompatibleDisallowKeywordOnlyArgs(boolean value);
public abstract Builder incompatibleDisallowToplevelIfStatement(boolean value);