diff options
author | carmi <carmi@google.com> | 2018-03-29 10:36:30 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-29 10:37:44 -0700 |
commit | d924fb9760fe4f87c677b94500c4d0fc1f375f99 (patch) | |
tree | 80506a38e522d1a284926056e95cdaa5e4ed06bd /src/main/java/com/google/devtools/build/lib/skyframe/packages | |
parent | d2f33add4d8242156828d0c146538b831cc27081 (diff) |
Allow setting the value which BazelPackageLoader returns for native.bazel_version.
This allows it to work in workspaces that use https://github.com/bazelbuild/bazel-skylib/blob/a5e23fd4c0b766f38f80d5edf10073ce990b2fa1/lib/versions.bzl
RELNOTES: None
PiperOrigin-RevId: 190950709
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/packages')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java | 7 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java | 26 |
2 files changed, 27 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java index f5d393585d..0c63193fea 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java @@ -337,7 +337,10 @@ public abstract class AbstractPackageLoader implements PackageLoader { /*keepEdges=*/ false)); } - protected abstract String getName(); + /** + * Version is the string BazelPackageLoader reports in native.bazel_version to be used by Skylark. + */ + protected abstract String getVersion(); protected abstract ImmutableList<EnvironmentExtension> getEnvironmentExtensions(); @@ -362,7 +365,7 @@ public abstract class AbstractPackageLoader implements PackageLoader { ruleClassProvider, AttributeContainer::new, getEnvironmentExtensions(), - getName(), + getVersion(), Package.Builder.DefaultHelper.INSTANCE); pkgFactory.setGlobbingThreads(legacyGlobbingThreads); pkgFactory.setSyscalls(syscallCacheRef); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java index 1393fbf7dd..ac55f39897 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java @@ -52,6 +52,12 @@ import java.util.concurrent.atomic.AtomicReference; * caching or incrementality. */ public class BazelPackageLoader extends AbstractPackageLoader { + + /** + * Version is the string BazelPackageLoader reports in native.bazel_version to be used by Skylark. + */ + private final String version; + /** Returns a fresh {@link Builder} instance. */ public static Builder builder(Path workspaceDir, Path installBase, Path outputBase) { // Prevent PackageLoader from fetching any remote repositories; these should only be fetched by @@ -107,6 +113,8 @@ public class BazelPackageLoader extends AbstractPackageLoader { private final AtomicBoolean isFetch; + private String version = ""; + private static ConfiguredRuleClassProvider createRuleClassProvider() { ConfiguredRuleClassProvider.Builder classProvider = new ConfiguredRuleClassProvider.Builder(); new BazelRepositoryModule().initializeRuleClasses(classProvider); @@ -121,7 +129,7 @@ public class BazelPackageLoader extends AbstractPackageLoader { @Override public BazelPackageLoader buildImpl() { - return new BazelPackageLoader(this); + return new BazelPackageLoader(this, version); } @Override @@ -135,19 +143,29 @@ public class BazelPackageLoader extends AbstractPackageLoader { InvocationPolicy.getDefaultInstance()); } + /** + * Version is the string BazelPackageLoader reports in native.bazel_version to be used by + * Skylark. + */ + public Builder setVersion(String version) { + this.version = version; + return this; + } + Builder setFetchForTesting() { this.isFetch.set(true); return this; } } - private BazelPackageLoader(Builder builder) { + private BazelPackageLoader(Builder builder, String version) { super(builder); + this.version = version; } @Override - protected String getName() { - return "BazelPackageLoader"; + protected String getVersion() { + return version; } @Override |