diff options
author | corysmith <corysmith@google.com> | 2017-08-23 19:01:08 +0200 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2017-08-24 13:58:47 +0200 |
commit | 827d3d2f3350417d33f9f7caf614c7e48aabb071 (patch) | |
tree | 46ba2106449aed6414dff72a017e5513eee19a45 /src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceCompiler.java | |
parent | a7271d28ba82a24d235da2cf57045bac042d1bb7 (diff) |
Final tweaks and fixes to enable aapt2 for Blaze.
Implemented processing databinding for compile passes
RELNOTES: None
PiperOrigin-RevId: 166215052
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceCompiler.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceCompiler.java | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceCompiler.java b/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceCompiler.java index e13dc613ca..6084f6710f 100644 --- a/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceCompiler.java +++ b/src/tools/android/java/com/google/devtools/build/android/aapt2/ResourceCompiler.java @@ -16,6 +16,7 @@ package com.google.devtools.build.android.aapt2; import com.android.builder.core.VariantType; import com.android.repository.Revision; +import com.google.common.base.Preconditions; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; @@ -55,22 +56,38 @@ public class ResourceCompiler { @Override public Path call() throws Exception { - logger.fine( - new AaptCommandBuilder(aapt2) - .forBuildToolsVersion(buildToolsVersion) - .forVariantType(VariantType.LIBRARY) - .add("compile") - .add("-v") - .add("--legacy") - .add("-o", compiledResourcesOut.toString()) - .add(file.toString()) - .execute("Compiling " + file)); + logger.fine( + new AaptCommandBuilder(aapt2) + .forBuildToolsVersion(buildToolsVersion) + .forVariantType(VariantType.LIBRARY) + .add("compile") + .add("-v") + .add("--legacy") + .add("-o", compiledResourcesOut.toString()) + .add(file.toString()) + .execute("Compiling " + file)); + + String type = file.getParent().getFileName().toString(); String filename = file.getFileName().toString(); if (type.startsWith("values")) { - filename = filename.substring(0, filename.indexOf('.')) + ".arsc"; + filename = + (filename.indexOf('.') != -1 ? filename.substring(0, filename.indexOf('.')) : filename) + + ".arsc"; } - return compiledResourcesOut.resolve(type + "_" + filename + ".flat"); + + final Path compiledResourcePath = + compiledResourcesOut.resolve(type + "_" + filename + ".flat"); + Preconditions.checkArgument( + Files.exists(compiledResourcePath), + "%s does not exists after aapt2 ran.", + compiledResourcePath); + return compiledResourcePath; + } + + @Override + public String toString() { + return "ResourceCompiler.CompileTask(" + file + ")"; } } @@ -95,7 +112,8 @@ public class ResourceCompiler { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { - if (!Files.isDirectory(file)) { + // Ignore directories and "hidden" files that start with . + if (!Files.isDirectory(file) && !file.getFileName().toString().startsWith(".")) { tasks.add( executorService.submit( new CompileTask( |