diff options
author | Laszlo Csomor <laszlocsomor@google.com> | 2017-09-05 09:35:39 +0200 |
---|---|---|
committer | Yun Peng <pcloudy@google.com> | 2017-09-05 09:55:00 +0200 |
commit | c77f891e7c214a39f9f196cd0a308f9ea5819ad9 (patch) | |
tree | da1dee33a33163a89a7a16c8aec59db9dcef897b /src | |
parent | 98bfd9831168660d10ba4f29b62dc65d90653b13 (diff) |
Android,Windows: support long paths in tooling
aar_resources_extractor now supports long paths
on Windows.
If the script needs to extract a file from the
AAR where the destination path is too long, the
script will:
1. create a temporary junction under a short path,
pointing to the destination directory (which
has a long path)
2. extract the file under the junction
3. delete the junction and the temp directory
See https://github.com/bazelbuild/bazel/issues/3659
Change-Id: Ie85665b360a6514afaac546aaec8869224fe9d06
PiperOrigin-RevId: 167545085
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java | 6 | ||||
-rw-r--r-- | src/test/py/bazel/BUILD | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java index 61295fc8e6..e3d5a12733 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java @@ -176,6 +176,7 @@ public class AarImport implements RuleConfiguredTargetFactory { private static Action[] createSingleFileExtractorActions(RuleContext ruleContext, Artifact aar, String filename, Artifact outputArtifact) { return new SpawnAction.Builder() + .useDefaultShellEnvironment() .setExecutable(ruleContext.getExecutablePrerequisite(AarImportBaseRule.ZIPPER, Mode.HOST)) .setMnemonic("AarFileExtractor") .setProgressMessage("Extracting %s from %s", filename, aar.getFilename()) @@ -193,6 +194,7 @@ public class AarImport implements RuleConfiguredTargetFactory { private static Action[] createAarResourcesExtractorActions( RuleContext ruleContext, Artifact aar, Artifact outputTree) { return new SpawnAction.Builder() + .useDefaultShellEnvironment() .setExecutable( ruleContext.getExecutablePrerequisite( AarImportBaseRule.AAR_RESOURCES_EXTRACTOR, Mode.HOST)) @@ -210,6 +212,7 @@ public class AarImport implements RuleConfiguredTargetFactory { private static Action[] createAarEmbeddedJarsExtractorActions(RuleContext ruleContext, Artifact aar, Artifact jarsTreeArtifact, Artifact singleJarParamFile) { return new SpawnAction.Builder() + .useDefaultShellEnvironment() .setExecutable( ruleContext.getExecutablePrerequisite( AarImportBaseRule.AAR_EMBEDDED_JARS_EXTACTOR, Mode.HOST)) @@ -248,6 +251,7 @@ public class AarImport implements RuleConfiguredTargetFactory { Artifact outputZip) { SpawnAction.Builder actionBuilder = new SpawnAction.Builder() + .useDefaultShellEnvironment() .setExecutable( ruleContext.getExecutablePrerequisite( AarImportBaseRule.AAR_NATIVE_LIBS_ZIP_CREATOR, Mode.HOST)) @@ -276,7 +280,7 @@ public class AarImport implements RuleConfiguredTargetFactory { // Adds the appropriate SpawnAction options depending on if SingleJar is a jar or not. private static SpawnAction.Builder singleJarSpawnActionBuilder(RuleContext ruleContext) { - SpawnAction.Builder builder = new SpawnAction.Builder(); + SpawnAction.Builder builder = new SpawnAction.Builder().useDefaultShellEnvironment(); Artifact singleJar = JavaToolchainProvider.fromRuleContext(ruleContext).getSingleJar(); if (singleJar.getFilename().endsWith(".jar")) { builder diff --git a/src/test/py/bazel/BUILD b/src/test/py/bazel/BUILD index 3be9bc2e0f..f93093b0a1 100644 --- a/src/test/py/bazel/BUILD +++ b/src/test/py/bazel/BUILD @@ -20,6 +20,7 @@ py_library( visibility = [ "//src/test/py/bazel:__pkg__", "//third_party/def_parser:__pkg__", + "//tools/android:__pkg__", ], ) |