diff options
author | Googler <noreply@google.com> | 2016-03-07 16:41:57 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-03-08 03:44:31 +0000 |
commit | 8056c4577614f3d6374a01b8b3014a2070e1fe41 (patch) | |
tree | 2db52a8be8b0362f85b07c7ef036cd8a5a7a1711 /src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java | |
parent | 3a55f01cc98068d0133349ddb5c0043b74555565 (diff) |
Support android_resources in Android Studio.
--
MOS_MIGRATED_REVID=116549753
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java | 71 |
1 files changed, 38 insertions, 33 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java index 4749ab69bf..5c62c14192 100644 --- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java @@ -425,24 +425,17 @@ public class AndroidStudioInfoAspect implements ConfiguredNativeAspectFactory { builder.addResources(artifactLocation); } - builder.setJavaPackage(provider.getJavaPackage()); + if (provider.getJavaPackage() != null) { + builder.setJavaPackage(provider.getJavaPackage()); + } boolean hasIdlSources = !provider.getIdlSrcs().isEmpty(); builder.setHasIdlSources(hasIdlSources); if (hasIdlSources) { - LibraryArtifact.Builder jarBuilder = LibraryArtifact.newBuilder(); - Artifact idlClassJar = provider.getIdlClassJar(); - if (idlClassJar != null) { - jarBuilder.setJar(makeArtifactLocation(idlClassJar)); - addResolveArtifact(ideResolveArtifacts, idlClassJar); - } - Artifact idlSourceJar = provider.getIdlSourceJar(); - if (idlSourceJar != null) { - jarBuilder.setSourceJar(makeArtifactLocation(idlSourceJar)); - addResolveArtifact(ideResolveArtifacts, idlSourceJar); - } - if (idlClassJar != null) { - builder.setIdlJar(jarBuilder.build()); + LibraryArtifact idlLibraryArtifact = makeLibraryArtifact(ideResolveArtifacts, + provider.getIdlClassJar(), null, provider.getIdlSourceJar()); + if (idlLibraryArtifact != null) { + builder.setIdlJar(idlLibraryArtifact); } } @@ -543,31 +536,43 @@ public class AndroidStudioInfoAspect implements ConfiguredNativeAspectFactory { JavaRuleIdeInfo.Builder builder, NestedSetBuilder<Artifact> ideResolveArtifacts, JavaRuleOutputJarsProvider outputJarsProvider) { - LibraryArtifact.Builder jarsBuilder = LibraryArtifact.newBuilder(); for (OutputJar outputJar : outputJarsProvider.getOutputJars()) { - Artifact classJar = outputJar.getClassJar(); - if (classJar != null) { - jarsBuilder.setJar(makeArtifactLocation(classJar)); - addResolveArtifact(ideResolveArtifacts, classJar); - } - Artifact iJar = outputJar.getIJar(); - if (iJar != null) { - jarsBuilder.setInterfaceJar(makeArtifactLocation(iJar)); - addResolveArtifact(ideResolveArtifacts, iJar); - } - Artifact srcJar = outputJar.getSrcJar(); - if (srcJar != null) { - jarsBuilder.setSourceJar(makeArtifactLocation(srcJar)); - addResolveArtifact(ideResolveArtifacts, srcJar); - } + LibraryArtifact libraryArtifact = makeLibraryArtifact(ideResolveArtifacts, + outputJar.getClassJar(), outputJar.getIJar(), outputJar.getSrcJar()); - // We don't want to add anything that doesn't have a class jar - if (classJar != null) { - builder.addJars(jarsBuilder.build()); + if (libraryArtifact != null) { + builder.addJars(libraryArtifact); } } } + @Nullable + private static LibraryArtifact makeLibraryArtifact( + NestedSetBuilder<Artifact> ideResolveArtifacts, + @Nullable Artifact classJar, + @Nullable Artifact iJar, + @Nullable Artifact sourceJar + ) { + // We don't want to add anything that doesn't have a class jar + if (classJar == null) { + return null; + } + LibraryArtifact.Builder jarsBuilder = LibraryArtifact.newBuilder(); + jarsBuilder.setJar(makeArtifactLocation(classJar)); + addResolveArtifact(ideResolveArtifacts, classJar); + + if (iJar != null) { + jarsBuilder.setInterfaceJar(makeArtifactLocation(iJar)); + addResolveArtifact(ideResolveArtifacts, iJar); + } + if (sourceJar != null) { + jarsBuilder.setSourceJar(makeArtifactLocation(sourceJar)); + addResolveArtifact(ideResolveArtifacts, sourceJar); + } + + return jarsBuilder.build(); + } + private static void collectGenJars( JavaRuleIdeInfo.Builder builder, NestedSetBuilder<Artifact> ideResolveArtifacts, |