aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-10-21 16:49:41 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-10-22 15:14:21 +0000
commit86ea967e3449e354f32484d1fbaebb169a4e7b03 (patch)
tree0fef67044573495ea7e3aff28db3529069d8d4ec
parent0b97b91ab4afb101fa2d54f1f7ca5d56b5ff026e (diff)
Remove transitive data from Android Studio aspect.
The cost-benefit isn't there to pay a square cost to roll these up on the blaze side. Android Studio has to do it on its end instead. -- MOS_MIGRATED_REVID=105971068
-rw-r--r--src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoFilesProvider.java49
-rw-r--r--src/main/protobuf/android_studio_ide_info.proto2
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java39
4 files changed, 5 insertions, 106 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 ee6e12a279..0da356094a 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
@@ -155,10 +155,6 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory {
providerBuilder.ideInfoFilesBuilder().addTransitive(depProvider.getIdeInfoFiles());
providerBuilder.ideInfoTextFilesBuilder().addTransitive(depProvider.getIdeInfoTextFiles());
providerBuilder.ideResolveFilesBuilder().addTransitive(depProvider.getIdeResolveFiles());
- providerBuilder.transitiveDependenciesBuilder().addTransitive(
- depProvider.getTransitiveDependencies());
- providerBuilder.transitiveResourcesBuilder().addTransitive(
- depProvider.getTransitiveResources());
}
for (TransitiveInfoCollection dep : prerequisites) {
dependenciesBuilder.add(dep.getLabel());
@@ -182,9 +178,7 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory {
}
}
- NestedSet<Label> directDependencies = dependenciesBuilder.build();
- providerBuilder.transitiveDependenciesBuilder().addTransitive(directDependencies);
- return directDependencies;
+ return dependenciesBuilder.build();
}
private static AndroidSdkRuleInfo makeAndroidSdkRuleInfo(AndroidSdkProvider provider) {
@@ -238,7 +232,7 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory {
|| ruleKind == Kind.ANDROID_BINARY
|| ruleKind == Kind.ANDROID_TEST) {
outputBuilder.setAndroidRuleIdeInfo(
- makeAndroidRuleIdeInfo(ruleContext, base, ideResolveArtifacts, providerBuilder));
+ makeAndroidRuleIdeInfo(ruleContext, base, ideResolveArtifacts));
}
if (ruleKind == Kind.ANDROID_SDK) {
outputBuilder.setAndroidSdkRuleInfo(
@@ -248,8 +242,6 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory {
AndroidStudioInfoFilesProvider provider = providerBuilder.build();
outputBuilder.addAllDependencies(transform(directDependencies, LABEL_TO_STRING));
- outputBuilder.addAllTransitiveDependencies(
- transform(provider.getTransitiveDependencies(), LABEL_TO_STRING));
outputBuilder.addAllTags(base.getTarget().getAssociatedRule().getRuleTags());
@@ -278,8 +270,7 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory {
private static AndroidRuleIdeInfo makeAndroidRuleIdeInfo(
RuleContext ruleContext,
ConfiguredTarget base,
- NestedSetBuilder<Artifact> ideResolveArtifacts,
- AndroidStudioInfoFilesProvider.Builder providerBuilder) {
+ NestedSetBuilder<Artifact> ideResolveArtifacts) {
AndroidRuleIdeInfo.Builder builder = AndroidRuleIdeInfo.newBuilder();
AndroidIdeInfoProvider provider = base.getProvider(AndroidIdeInfoProvider.class);
assert provider != null;
@@ -302,16 +293,10 @@ public class AndroidStudioInfoAspect implements ConfiguredAspectFactory {
for (SourceDirectory resourceDir : provider.getResourceDirs()) {
ArtifactLocation artifactLocation = makeArtifactLocation(resourceDir);
builder.addResources(artifactLocation);
- providerBuilder.transitiveResourcesBuilder().add(resourceDir);
}
builder.setJavaPackage(AndroidCommon.getJavaPackage(ruleContext));
- NestedSet<SourceDirectory> transitiveResources = providerBuilder.getTransitiveResources();
- for (SourceDirectory transitiveResource : transitiveResources) {
- builder.addTransitiveResources(makeArtifactLocation(transitiveResource));
- }
-
boolean hasIdlSources = !provider.getIdlSrcs().isEmpty();
builder.setHasIdlSources(hasIdlSources);
if (hasIdlSources) {
diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoFilesProvider.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoFilesProvider.java
index f7e5ce6cc0..8f57d965d9 100644
--- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoFilesProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoFilesProvider.java
@@ -20,8 +20,6 @@ import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.rules.android.AndroidIdeInfoProvider;
-import com.google.devtools.build.lib.rules.android.AndroidIdeInfoProvider.SourceDirectory;
/**
* File provider for Android Studio ide build files.
@@ -31,9 +29,7 @@ public final class AndroidStudioInfoFilesProvider implements TransitiveInfoProvi
private final NestedSet<Artifact> ideInfoFiles;
private final NestedSet<Artifact> ideInfoTextFiles;
private final NestedSet<Artifact> ideResolveFiles;
- private final NestedSet<Label> transitiveDependencies;
private final NestedSet<Label> exportedDeps;
- private final NestedSet<AndroidIdeInfoProvider.SourceDirectory> transitiveResources;
/**
* Builder class for {@link AndroidStudioInfoFilesProvider}
@@ -42,19 +38,13 @@ public final class AndroidStudioInfoFilesProvider implements TransitiveInfoProvi
private final NestedSetBuilder<Artifact> ideInfoFilesBuilder;
private final NestedSetBuilder<Artifact> ideInfoTextFilesBuilder;
private final NestedSetBuilder<Artifact> ideResolveFilesBuilder;
- private final NestedSetBuilder<Label> transitiveDependenciesBuilder;
private NestedSetBuilder<Label> exportedDepsBuilder;
- private NestedSetBuilder<AndroidIdeInfoProvider.SourceDirectory> transitiveResourcesBuilder;
- private NestedSet<AndroidIdeInfoProvider.SourceDirectory> transitiveResources;
public Builder() {
ideInfoFilesBuilder = NestedSetBuilder.stableOrder();
ideInfoTextFilesBuilder = NestedSetBuilder.stableOrder();
ideResolveFilesBuilder = NestedSetBuilder.stableOrder();
- transitiveDependenciesBuilder = NestedSetBuilder.stableOrder();
exportedDepsBuilder = NestedSetBuilder.stableOrder();
- transitiveResourcesBuilder = NestedSetBuilder.stableOrder();
- transitiveResources = null;
}
public NestedSetBuilder<Artifact> ideInfoFilesBuilder() {
@@ -69,39 +59,16 @@ public final class AndroidStudioInfoFilesProvider implements TransitiveInfoProvi
return ideResolveFilesBuilder;
}
- public NestedSetBuilder<Label> transitiveDependenciesBuilder() {
- return transitiveDependenciesBuilder;
- }
-
public NestedSetBuilder<Label> exportedDepsBuilder() {
return exportedDepsBuilder;
}
- public NestedSetBuilder<SourceDirectory> transitiveResourcesBuilder() {
- return transitiveResourcesBuilder;
- }
-
- /**
- * Returns a set of transitive resources. {@link Builder#transitiveResourcesBuilder}
- * is unusable after this operation.
- */
- public NestedSet<AndroidIdeInfoProvider.SourceDirectory> getTransitiveResources() {
- if (transitiveResources != null) {
- return transitiveResources;
- }
- transitiveResources = transitiveResourcesBuilder.build();
- transitiveResourcesBuilder = null;
- return transitiveResources;
- }
-
public AndroidStudioInfoFilesProvider build() {
return new AndroidStudioInfoFilesProvider(
ideInfoFilesBuilder.build(),
ideInfoTextFilesBuilder.build(),
ideResolveFilesBuilder.build(),
- transitiveDependenciesBuilder.build(),
- exportedDepsBuilder.build(),
- getTransitiveResources()
+ exportedDepsBuilder.build()
);
}
}
@@ -110,15 +77,11 @@ public final class AndroidStudioInfoFilesProvider implements TransitiveInfoProvi
NestedSet<Artifact> ideInfoFiles,
NestedSet<Artifact> ideInfoTextFiles,
NestedSet<Artifact> ideResolveFiles,
- NestedSet<Label> transitiveDependencies,
- NestedSet<Label> exportedDeps,
- NestedSet<SourceDirectory> transitiveResources) {
+ NestedSet<Label> exportedDeps) {
this.ideInfoFiles = ideInfoFiles;
this.ideInfoTextFiles = ideInfoTextFiles;
this.ideResolveFiles = ideResolveFiles;
- this.transitiveDependencies = transitiveDependencies;
this.exportedDeps = exportedDeps;
- this.transitiveResources = transitiveResources;
}
public NestedSet<Artifact> getIdeInfoFiles() {
@@ -133,15 +96,7 @@ public final class AndroidStudioInfoFilesProvider implements TransitiveInfoProvi
return ideResolveFiles;
}
- public NestedSet<Label> getTransitiveDependencies() {
- return transitiveDependencies;
- }
-
public NestedSet<Label> getExportedDeps() {
return exportedDeps;
}
-
- public NestedSet<SourceDirectory> getTransitiveResources() {
- return transitiveResources;
- }
}
diff --git a/src/main/protobuf/android_studio_ide_info.proto b/src/main/protobuf/android_studio_ide_info.proto
index 64b99c006e..01ac27d91e 100644
--- a/src/main/protobuf/android_studio_ide_info.proto
+++ b/src/main/protobuf/android_studio_ide_info.proto
@@ -40,7 +40,6 @@ message JavaRuleIdeInfo {
message AndroidRuleIdeInfo {
repeated ArtifactLocation resources = 1;
- repeated ArtifactLocation transitive_resources = 2;
ArtifactLocation apk = 3;
repeated ArtifactLocation dependency_apk = 4;
ArtifactLocation manifest= 5;
@@ -71,7 +70,6 @@ message RuleIdeInfo {
Kind kind = 2;
string build_file = 3;
repeated string dependencies = 4;
- repeated string transitive_dependencies = 5;
// kind is ANDROID_SDK
AndroidSdkRuleInfo android_sdk_rule_info = 6;
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
index 053d866376..3b67a07faf 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java
@@ -82,9 +82,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
.containsExactly("com/google/example/complex/Complex.java");
assertThat(complexRuleIdeInfo.getDependenciesList())
.containsExactly("//com/google/example:simple");
-
- assertThat(complexRuleIdeInfo.getTransitiveDependenciesList())
- .containsExactly("//com/google/example:simple");
}
public void testJavaLibraryWithTransitiveDependencies() throws Exception {
@@ -118,9 +115,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
assertThat(extraComplexRuleIdeInfo.getDependenciesList())
.containsExactly("//com/google/example:complex");
- assertThat(extraComplexRuleIdeInfo.getTransitiveDependenciesList())
- .containsExactly("//com/google/example:simple", "//com/google/example:complex")
- .inOrder();
assertThat(getIdeResolveFiles()).containsExactly(
"com/google/example/libextracomplex.jar",
"com/google/example/libextracomplex-ijar.jar",
@@ -170,13 +164,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
.containsExactly("com/google/example/extracomplex/ExtraComplex.java");
assertThat(extraComplexRuleIdeInfo.getDependenciesList())
.containsExactly("//com/google/example:complex", "//com/google/example:complex1");
-
- assertThat(extraComplexRuleIdeInfo.getTransitiveDependenciesList())
- .containsExactly(
- "//com/google/example:simple",
- "//com/google/example:complex",
- "//com/google/example:complex1")
- .inOrder();
}
public void testJavaLibraryWithExports() throws Exception {
@@ -209,17 +196,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
assertThat(complexRuleIdeInfo.getDependenciesList())
.containsExactly("//com/google/example:simple");
- assertThat(complexRuleIdeInfo.getTransitiveDependenciesList())
- .containsExactly("//com/google/example:simple");
assertThat(extraComplexRuleIdeInfo.getDependenciesList())
.containsExactly("//com/google/example:simple", "//com/google/example:complex")
.inOrder();
- assertThat(extraComplexRuleIdeInfo.getTransitiveDependenciesList())
- .containsExactly(
- "//com/google/example:simple",
- "//com/google/example:complex")
- .inOrder();
assertThat(getIdeResolveFiles()).containsExactly(
"com/google/example/libextracomplex.jar",
"com/google/example/libextracomplex-ijar.jar",
@@ -274,13 +254,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
"//com/google/example:complex",
"//com/google/example:extracomplex")
.inOrder();
-
- assertThat(megaComplexRuleIdeInfo.getTransitiveDependenciesList())
- .containsExactly(
- "//com/google/example:simple",
- "//com/google/example:complex",
- "//com/google/example:extracomplex")
- .inOrder();
}
public void testJavaImport() throws Exception {
@@ -490,12 +463,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
assertThat(ruleInfo.getAndroidRuleIdeInfo().getJavaPackage()).isEqualTo("com.google.example");
assertThat(ruleInfo.getDependenciesList()).containsExactly("//com/google/example:l1");
- assertThat(
- transform(
- ruleInfo.getAndroidRuleIdeInfo().getTransitiveResourcesList(),
- ARTIFACT_TO_RELATIVE_PATH))
- .containsExactly("com/google/example/r1", "com/google/example/res")
- .inOrder();
assertThat(getIdeResolveFiles()).containsExactly(
"com/google/example/libl.jar",
"com/google/example/libl-ijar.jar",
@@ -541,12 +508,6 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
.isEqualTo("com/google/example/b.apk");
assertThat(ruleInfo.getDependenciesList()).containsExactly("//com/google/example:l1");
- assertThat(
- transform(
- ruleInfo.getAndroidRuleIdeInfo().getTransitiveResourcesList(),
- ARTIFACT_TO_RELATIVE_PATH))
- .containsExactly("com/google/example/r1", "com/google/example/res")
- .inOrder();
assertThat(getIdeResolveFiles()).containsExactly(
"com/google/example/libb.jar",