aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Jingwen Chen <jingwen@google.com>2016-10-05 14:54:19 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-10-05 15:32:51 +0000
commit239d995e359ab38a9b5c83eff4d31684b4fc5b9c (patch)
tree6937fbbb3c4e6c84cef034f377dbd748eabe61a2
parente025939e71b179ae0f6bd09ef3af474f49b853a2 (diff)
Implemented a "--experimental_repository_cache" option as the first step to
caching external repositories. The option is categorized as hidden because it is a no-op. Re-submit with fix from rollback in commit 9883e2223565d0115aa938d50c3f5dbdb1c59585 due to JDK7 build failure. GitHub issue: #1752 -- MOS_MIGRATED_REVID=135231668
-rw-r--r--src/main/java/com/google/devtools/build/lib/BUILD1
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java35
3 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD
index 45aa1c35fd..f9429f1a70 100644
--- a/src/main/java/com/google/devtools/build/lib/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/BUILD
@@ -670,6 +670,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:vfs",
"//src/main/java/com/google/devtools/build/lib/bazel/repository/downloader",
"//src/main/java/com/google/devtools/build/skyframe",
+ "//src/main/java/com/google/devtools/common/options",
"//third_party:aether",
"//third_party:apache_commons_compress",
"//third_party:guava",
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
index 365632d196..f42de1ab2b 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.bazel;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.BlazeDirectories;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
@@ -28,6 +29,7 @@ import com.google.devtools.build.lib.bazel.repository.MavenServerFunction;
import com.google.devtools.build.lib.bazel.repository.MavenServerRepositoryFunction;
import com.google.devtools.build.lib.bazel.repository.NewGitRepositoryFunction;
import com.google.devtools.build.lib.bazel.repository.NewHttpArchiveFunction;
+import com.google.devtools.build.lib.bazel.repository.RepositoryOptions;
import com.google.devtools.build.lib.bazel.repository.skylark.SkylarkRepositoryFunction;
import com.google.devtools.build.lib.bazel.repository.skylark.SkylarkRepositoryModule;
import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryFunction;
@@ -62,6 +64,7 @@ import com.google.devtools.build.lib.util.AbruptExitException;
import com.google.devtools.build.lib.util.io.TimestampGranularityMonitor;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
+import com.google.devtools.common.options.OptionsBase;
import com.google.devtools.common.options.OptionsProvider;
import java.util.Map.Entry;
@@ -170,4 +173,11 @@ public class BazelRepositoryModule extends BlazeModule {
delegator.setClientEnvironment(env.getClientEnv());
skylarkRepositoryFunction.setCommandEnvironment(env);
}
+
+ @Override
+ public Iterable<Class<? extends OptionsBase>> getCommandOptions(Command command) {
+ return "fetch".equals(command.name()) || "build".equals(command.name())
+ ? ImmutableList.<Class<? extends OptionsBase>>of(RepositoryOptions.class)
+ : ImmutableList.<Class<? extends OptionsBase>>of();
+ }
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java
new file mode 100644
index 0000000000..84b1fa251e
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryOptions.java
@@ -0,0 +1,35 @@
+//Copyright 2016 The Bazel Authors. All rights reserved.
+//
+//Licensed under the Apache License, Version 2.0 (the "License");
+//you may not use this file except in compliance with the License.
+//You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+//Unless required by applicable law or agreed to in writing, software
+//distributed under the License is distributed on an "AS IS" BASIS,
+//WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//See the License for the specific language governing permissions and
+//limitations under the License.
+
+package com.google.devtools.build.lib.bazel.repository;
+
+import com.google.devtools.build.lib.util.OptionsUtils;
+import com.google.devtools.build.lib.vfs.PathFragment;
+import com.google.devtools.common.options.Option;
+import com.google.devtools.common.options.OptionsBase;
+
+/**
+ * Command-line options for repositories.
+ */
+public class RepositoryOptions extends OptionsBase {
+
+ @Option(name = "experimental_repository_cache",
+ defaultValue = "null",
+ category = "hidden",
+ converter = OptionsUtils.PathFragmentConverter.class,
+ help = "Specifies the cache location of the downloaded values obtained "
+ + "during the fetching of external repositories.")
+ public PathFragment experimentalRepositoryCache;
+
+} \ No newline at end of file