From 1750a3f4ff7f8b6d0cb8ccf62dbed9e3bcf4b932 Mon Sep 17 00:00:00 2001 From: Googler Date: Tue, 11 Oct 2016 18:09:06 +0000 Subject: ide-compile output group now mirrors the compile-only output group for cc rules -- MOS_MIGRATED_REVID=135816762 --- .../build/lib/ideinfo/AndroidStudioInfoAspect.java | 31 +++++++++------------- .../ideinfo/AndroidStudioInfoFilesProvider.java | 14 ---------- 2 files changed, 13 insertions(+), 32 deletions(-) (limited to 'src/main/java/com/google/devtools/build') 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 a6c84893e5..deab1cff3d 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 @@ -36,6 +36,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredAspect.Builder; import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; +import com.google.devtools.build.lib.analysis.OutputGroupProvider; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; @@ -67,11 +68,9 @@ import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.rules.android.AndroidIdeInfoProvider; import com.google.devtools.build.lib.rules.android.AndroidIdeInfoProvider.SourceDirectory; import com.google.devtools.build.lib.rules.android.AndroidSdkProvider; -import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppCompilationContext; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; -import com.google.devtools.build.lib.rules.cpp.LinkerInput; import com.google.devtools.build.lib.rules.java.JavaExportsProvider; import com.google.devtools.build.lib.rules.java.JavaGenJarsProvider; import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider; @@ -197,11 +196,19 @@ public class AndroidStudioInfoAspect extends NativeAspectClass implements Config dependenciesResult, providerBuilder); + NestedSetBuilder ideCompileArtifacts = NestedSetBuilder.stableOrder(); + // Add artifacts required for compilation + OutputGroupProvider outputGroupProvider = base.getProvider(OutputGroupProvider.class); + if (outputGroupProvider != null) { + ideCompileArtifacts.addTransitive( + outputGroupProvider.getOutputGroup(OutputGroupProvider.FILES_TO_COMPILE)); + } + builder .addOutputGroup(IDE_INFO, provider.getIdeInfoFiles()) .addOutputGroup(IDE_INFO_TEXT, provider.getIdeInfoTextFiles()) .addOutputGroup(IDE_RESOLVE, provider.getIdeResolveFiles()) - .addOutputGroup(IDE_COMPILE, provider.getIdeCompileFiles()) + .addOutputGroup(IDE_COMPILE, ideCompileArtifacts.build()) .addProvider(provider); return builder.build(); @@ -296,10 +303,8 @@ public class AndroidStudioInfoAspect extends NativeAspectClass implements Config providerBuilder.ideInfoFilesBuilder().addTransitive(depProvider.getIdeInfoFiles()); providerBuilder.ideInfoTextFilesBuilder().addTransitive(depProvider.getIdeInfoTextFiles()); providerBuilder.ideResolveFilesBuilder().addTransitive(depProvider.getIdeResolveFiles()); - providerBuilder.ideCompileFilesBuilder().addTransitive(depProvider.getIdeCompileFiles()); } - return new DependenciesResult( dependencies, runtimeDepsBuilder.build(), @@ -318,7 +323,6 @@ public class AndroidStudioInfoAspect extends NativeAspectClass implements Config providerBuilder.ideInfoFilesBuilder().add(ideInfoFile); providerBuilder.ideInfoTextFilesBuilder().add(ideInfoTextFile); NestedSetBuilder ideResolveArtifacts = providerBuilder.ideResolveFilesBuilder(); - NestedSetBuilder ideCompileArtifacts = providerBuilder.ideCompileFilesBuilder(); RuleIdeInfo.Builder outputBuilder = RuleIdeInfo.newBuilder(); @@ -345,8 +349,8 @@ public class AndroidStudioInfoAspect extends NativeAspectClass implements Config if (isCppRule(base)) { CppCompilationContext cppCompilationContext = base.getProvider(CppCompilationContext.class); if (cppCompilationContext != null) { - CRuleIdeInfo cRuleIdeInfo = makeCRuleIdeInfo(base, ruleContext, - cppCompilationContext, ideResolveArtifacts, ideCompileArtifacts); + CRuleIdeInfo cRuleIdeInfo = makeCRuleIdeInfo(base, ruleContext, cppCompilationContext, + ideResolveArtifacts); outputBuilder.setCRuleIdeInfo(cRuleIdeInfo); } } @@ -679,8 +683,7 @@ public class AndroidStudioInfoAspect extends NativeAspectClass implements Config ConfiguredTarget base, RuleContext ruleContext, CppCompilationContext cppCompilationContext, - NestedSetBuilder ideResolveArtifacts, - NestedSetBuilder ideCompileArtifacts) { + NestedSetBuilder ideResolveArtifacts) { CRuleIdeInfo.Builder builder = CRuleIdeInfo.newBuilder(); Collection sourceFiles = getSources(ruleContext); @@ -715,14 +718,6 @@ public class AndroidStudioInfoAspect extends NativeAspectClass implements Config builder.addTransitiveSystemIncludeDirectory(pathFragment.getSafePathString()); } - // Add libs to ide-compile - CcLinkParamsProvider ccLinkParams = base.getProvider(CcLinkParamsProvider.class); - if (ccLinkParams != null) { - for (LinkerInput lib : ccLinkParams.getCcLinkParams(true, false).getLibraries()) { - ideCompileArtifacts.add(lib.getArtifact()); - } - } - androidStudioInfoSemantics.augmentCppRuleInfo( builder, base, ruleContext, cppCompilationContext, ideResolveArtifacts); 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 04af6749a6..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 @@ -29,7 +29,6 @@ public final class AndroidStudioInfoFilesProvider implements TransitiveInfoProvi private final NestedSet ideInfoFiles; private final NestedSet ideInfoTextFiles; private final NestedSet ideResolveFiles; - private final NestedSet ideCompileFiles; private final NestedSet