aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar dannark <dannark@google.com>2018-08-07 16:31:52 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-07 16:33:08 -0700
commited598bc180ff347f50ca70a04074f430185aa9c5 (patch)
tree04c996e8e700714a41d301c4f5b1e9b82b3bbe3a /src/main
parent075ab1e258902360bbd039d4b9fb4a6041a988d2 (diff)
Put main repo remapping behind a flag.
RELNOTES: None PiperOrigin-RevId: 207801155
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/SkylarkSemanticsOptions.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java22
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SkylarkSemantics.java5
3 files changed, 35 insertions, 18 deletions
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 3277c38440..5ef70d319b 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
@@ -59,15 +59,6 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
// <== Add new options here in alphabetic order ==>
@Option(
- name = "experimental_enable_repo_mapping",
- defaultValue = "false",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = OptionEffectTag.BUILD_FILE_SEMANTICS,
- help = "If set to true, enables the use of the `repo_mapping` attribute in WORKSPACE files."
- )
- public boolean experimentalEnableRepoMapping;
-
- @Option(
name = "experimental_cc_skylark_api_enabled_packages",
converter = CommaSeparatedOptionListConverter.class,
defaultValue = "",
@@ -80,6 +71,22 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
public List<String> experimentalCcSkylarkApiEnabledPackages;
@Option(
+ name = "experimental_enable_repo_mapping",
+ defaultValue = "false",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = OptionEffectTag.BUILD_FILE_SEMANTICS,
+ help = "If set to true, enables the use of the `repo_mapping` attribute in WORKSPACE files.")
+ public boolean experimentalEnableRepoMapping;
+
+ @Option(
+ name = "experimental_remap_main_repo",
+ defaultValue = "false",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = OptionEffectTag.LOADING_AND_ANALYSIS,
+ help = "If set to true, will treat references to '@<main repo name>' the same as '@'.")
+ public boolean experimentalRemapMainRepo;
+
+ @Option(
name = "incompatible_bzl_disallow_load_after_statement",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
@@ -363,6 +370,7 @@ public class SkylarkSemanticsOptions extends OptionsBase implements Serializable
// <== Add new options here in alphabetic order ==>
.experimentalCcSkylarkApiEnabledPackages(experimentalCcSkylarkApiEnabledPackages)
.experimentalEnableRepoMapping(experimentalEnableRepoMapping)
+ .experimentalRemapMainRepo(experimentalRemapMainRepo)
.incompatibleBzlDisallowLoadAfterStatement(incompatibleBzlDisallowLoadAfterStatement)
.incompatibleDepsetIsNotIterable(incompatibleDepsetIsNotIterable)
.incompatibleDepsetUnion(incompatibleDepsetUnion)
diff --git a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
index 6cc7ddfffe..c412181506 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
@@ -346,10 +346,12 @@ public class WorkspaceFactory {
}
// Add entry in repository map from "@name" --> "@" to avoid issue where bazel
// treats references to @name as a separate external repo
- builder.addRepositoryMappingEntry(
- RepositoryName.MAIN,
- RepositoryName.createFromValidStrippedName(name),
- RepositoryName.MAIN);
+ if (env.getSemantics().experimentalRemapMainRepo()) {
+ builder.addRepositoryMappingEntry(
+ RepositoryName.MAIN,
+ RepositoryName.createFromValidStrippedName(name),
+ RepositoryName.MAIN);
+ }
return NONE;
}
};
@@ -498,11 +500,13 @@ public class WorkspaceFactory {
// Add an entry in every repository from @<mainRepoName> to "@" to avoid treating
// @<mainRepoName> as a separate repository. This will be overridden if the main
// repository has a repo_mapping entry from <mainRepoName> to something.
- if (!Strings.isNullOrEmpty(builder.pkg.getWorkspaceName())) {
- builder.addRepositoryMappingEntry(
- RepositoryName.createFromValidStrippedName(externalRepoName),
- RepositoryName.createFromValidStrippedName(builder.pkg.getWorkspaceName()),
- RepositoryName.MAIN);
+ if (env.getSemantics().experimentalRemapMainRepo()) {
+ if (!Strings.isNullOrEmpty(builder.pkg.getWorkspaceName())) {
+ builder.addRepositoryMappingEntry(
+ RepositoryName.createFromValidStrippedName(externalRepoName),
+ RepositoryName.createFromValidStrippedName(builder.pkg.getWorkspaceName()),
+ RepositoryName.MAIN);
+ }
}
if (env.getSemantics().experimentalEnableRepoMapping()) {
if (kwargs.containsKey("repo_mapping")) {
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 5893ac49ab..85f6d4d212 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
@@ -45,6 +45,8 @@ public abstract class SkylarkSemantics {
public abstract boolean experimentalEnableRepoMapping();
+ public abstract boolean experimentalRemapMainRepo();
+
public abstract boolean incompatibleBzlDisallowLoadAfterStatement();
public abstract boolean incompatibleDepsetIsNotIterable();
@@ -102,6 +104,7 @@ public abstract class SkylarkSemantics {
// <== Add new options here in alphabetic order ==>
.experimentalCcSkylarkApiEnabledPackages(ImmutableList.of())
.experimentalEnableRepoMapping(false)
+ .experimentalRemapMainRepo(false)
.incompatibleBzlDisallowLoadAfterStatement(false)
.incompatibleDepsetIsNotIterable(false)
.incompatibleDepsetUnion(false)
@@ -133,6 +136,8 @@ public abstract class SkylarkSemantics {
public abstract Builder experimentalEnableRepoMapping(boolean value);
+ public abstract Builder experimentalRemapMainRepo(boolean value);
+
public abstract Builder incompatibleBzlDisallowLoadAfterStatement(boolean value);
public abstract Builder incompatibleDepsetIsNotIterable(boolean value);