aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2015-10-12 08:47:40 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-10-12 09:00:47 +0000
commitc74ee3784d3fd3a722f92c39805e57b4353a4509 (patch)
treefcf7f95dd92f1c09ebf7790d858c9e83de670cdf /src
parent2b4979192035906f9d67013ec0f34614f5e96ede (diff)
Make Bazel use tools that are embedded in its binary.
This requires changing all "//tools/language:target" implicit dependencies to "@tools//tools/language:target". -- MOS_MIGRATED_REVID=105193805
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/Constants.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/tools.WORKSPACE1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java2
-rw-r--r--src/test/java/BUILD1
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java2
-rwxr-xr-xsrc/test/shell/bazel/bazel_sandboxing_test.sh3
9 files changed, 18 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/Constants.java b/src/main/java/com/google/devtools/build/lib/Constants.java
index d4d643662f..940fa0e535 100644
--- a/src/main/java/com/google/devtools/build/lib/Constants.java
+++ b/src/main/java/com/google/devtools/build/lib/Constants.java
@@ -38,7 +38,7 @@ public class Constants {
public static final ImmutableList<String> ANDROID_DEFAULT_FAT_APK_CPUS =
ImmutableList.<String>of("armeabi-v7a");
public static final String ANDROID_DEP_PREFIX = "//external:android/".toString();
- public static final String TOOLS_REPOSITORY = "".toString();
+ public static final String TOOLS_REPOSITORY = "@bazel_tools".toString();
/**
* Whether C++ include scanning should be disabled no matter what the --cc_include_scanning flag
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index c315c3cf3f..38fb0bb026 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -280,6 +280,8 @@ public class BazelRuleClassProvider {
try {
builder.addWorkspaceFile(
+ ResourceFileLoader.loadResource(BazelRuleClassProvider.class, "tools.WORKSPACE"));
+ builder.addWorkspaceFile(
ResourceFileLoader.loadResource(BazelJavaRuleClasses.class, "jdk.WORKSPACE"));
builder.addWorkspaceFile(
ResourceFileLoader.loadResource(BazelAndroidSemantics.class, "android.WORKSPACE"));
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/tools.WORKSPACE b/src/main/java/com/google/devtools/build/lib/bazel/rules/tools.WORKSPACE
new file mode 100644
index 0000000000..4059c9e245
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/tools.WORKSPACE
@@ -0,0 +1 @@
+local_repository(name = "bazel_tools", path = __embedded_dir__ + "/embedded_tools")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 83cde77f04..2a34ed02d3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -281,16 +281,16 @@ public final class AndroidRuleClasses {
new SafeImplicitOutputsFunction() {
@Override
public Iterable<String> getImplicitOutputs(AttributeMap attributes) {
-
+
ImmutableList.Builder<SafeImplicitOutputsFunction> implicitOutputs =
ImmutableList.builder();
-
+
implicitOutputs.add(
AndroidRuleClasses.ANDROID_LIBRARY_CLASS_JAR,
AndroidRuleClasses.ANDROID_LIBRARY_SOURCE_JAR,
AndroidRuleClasses.ANDROID_LIBRARY_JACK_FILE,
AndroidRuleClasses.ANDROID_LIBRARY_AAR);
-
+
if (LocalResourceContainer.definesAndroidResources(attributes)) {
implicitOutputs.add(
AndroidRuleClasses.ANDROID_JAVA_SOURCE_JAR,
@@ -535,7 +535,8 @@ public final class AndroidRuleClasses {
// TODO(ahumesky): It would be better to put this dependency in //tools/android somehow
// like all the rest of android tools.
.add(attr("$jarjar_bin", LABEL).cfg(HOST).exec()
- .value(env.getLabel("//third_party/java/jarjar:jarjar_bin")))
+ .value(env.getLabel(
+ Constants.TOOLS_REPOSITORY + "//third_party/java/jarjar:jarjar_bin")))
.add(attr("$idlclass", LABEL).cfg(HOST).exec()
.value(env.getLabel(Constants.ANDROID_DEP_PREFIX + "IdlClass")))
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java
index 107ef1f11c..95ff677240 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframePackageLoaderWithValueEnvironment.java
@@ -65,7 +65,7 @@ class SkyframePackageLoaderWithValueEnvironment implements PackageProviderForCon
@Override
public void addDependency(Package pkg, String fileName) throws LabelSyntaxException, IOException {
RootedPath fileRootedPath = RootedPath.toRootedPath(pkg.getSourceRoot(),
- pkg.getNameFragment().getRelative(fileName));
+ pkg.getPackageIdentifier().getPathFragment().getRelative(fileName));
FileValue result = (FileValue) env.getValue(FileValue.key(fileRootedPath));
if (result != null && !result.exists()) {
throw new IOException();
diff --git a/src/test/java/BUILD b/src/test/java/BUILD
index 03354de817..d118130fde 100644
--- a/src/test/java/BUILD
+++ b/src/test/java/BUILD
@@ -340,6 +340,7 @@ java_test(
":testutil",
"//src/main/java:analysis-exec-rules-skyframe",
"//src/main/java:bazel-core",
+ "//src/main/java:common",
"//src/main/java:options",
"//src/main/java:packages",
"//src/main/java:util",
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
index 4f2775dd1d..5cbe70305e 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/config/ConfigSettingTest.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.google.devtools.build.lib.analysis.config;
+import com.google.devtools.build.lib.Constants;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.common.options.OptionsBase;
@@ -203,8 +204,9 @@ public class ConfigSettingTest extends BuildViewTestCase {
}
public void testSelectForDefaultCrosstoolTop() throws Exception {
+ String crosstoolTop = Constants.TOOLS_REPOSITORY + "//tools/cpp:toolchain";
scratchConfiguredTarget("a", "a",
- "config_setting(name='cs', values={'crosstool_top': '//tools/cpp:toolchain'})",
+ "config_setting(name='cs', values={'crosstool_top': '" + crosstoolTop + "'})",
"sh_library(name='a', srcs=['a.sh'], deps=select({':cs': []}))");
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
index 811ac6374a..0849ac1261 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java
@@ -64,9 +64,11 @@ public class BazelAnalysisMock extends AnalysisMock {
@Override
public void setupMockClient(MockToolsConfig config) throws IOException {
+ String workspace = config.getPath("").getPathString();
ArrayList<String> workspaceContents =
new ArrayList<>(
ImmutableList.of(
+ "local_repository(name = 'bazel_tools', path = '" + workspace + "')",
"bind(",
" name = 'objc_proto_lib',",
" actual = '//objcproto:ProtocolBuffers_lib',",
diff --git a/src/test/shell/bazel/bazel_sandboxing_test.sh b/src/test/shell/bazel/bazel_sandboxing_test.sh
index fb6e134d4d..5cf124af72 100755
--- a/src/test/shell/bazel/bazel_sandboxing_test.sh
+++ b/src/test/shell/bazel/bazel_sandboxing_test.sh
@@ -105,7 +105,8 @@ genrule(
name = "tooldir",
srcs = [],
outs = ["tooldir.txt"],
- cmd = "ls -l tools/genrule | tee $@ >&2; cat tools/genrule/genrule-setup.sh >&2",
+ cmd = "ls -l external/bazel_tools/tools/genrule | tee $@ >&2; " +
+ "cat external/bazel_tools/tools/genrule/genrule-setup.sh >&2",
)
genrule(