Add cc transitive headers to ide-resolve output group
Both source and generated hdrs are included in the output group.
Might be cleaner to only include generated headers -- perhaps by
adding a new field to CppCompilationContext. This solution seems
lighter-weight, however.
--
MOS_MIGRATED_REVID=126725901
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 feddc68..a7161f8 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
@@ -341,7 +341,7 @@
ruleContext.registerAction(
makePackageManifestAction(ruleContext,
packageManifest,
- getJavaSourcefForPackageManifest(ruleContext)));
+ getJavaSourceForPackageManifest(ruleContext)));
}
JavaRuleIdeInfo javaRuleIdeInfo = makeJavaRuleIdeInfo(
@@ -432,7 +432,7 @@
@Nullable private static Artifact createPackageManifest(ConfiguredTarget base,
RuleContext ruleContext) {
- Collection<Artifact> sourceFiles = getJavaSourcefForPackageManifest(ruleContext);
+ Collection<Artifact> sourceFiles = getJavaSourceForPackageManifest(ruleContext);
if (sourceFiles.isEmpty()) {
return null;
}
@@ -646,6 +646,8 @@
builder.addSource(makeArtifactLocation(sourceFile));
}
+ ideResolveArtifacts.addTransitive(cppCompilationContext.getDeclaredIncludeSrcs());
+
builder.addAllRuleInclude(getIncludes(ruleContext));
builder.addAllRuleDefine(getDefines(ruleContext));
builder.addAllRuleCopt(getCopts(ruleContext));
@@ -768,7 +770,7 @@
}
}
- private static Collection<Artifact> getJavaSourcefForPackageManifest(RuleContext ruleContext) {
+ private static Collection<Artifact> getJavaSourceForPackageManifest(RuleContext ruleContext) {
Collection<Artifact> srcs = getSources(ruleContext);
List<Artifact> javaSrcs = Lists.newArrayList();
for (Artifact src : srcs) {
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 7000ed4..998ec25 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
@@ -1141,7 +1141,7 @@
assertThat(ruleIdeInfo.getJavaRuleIdeInfo().getJarsList()).isEmpty();
- assertThat(getIdeResolveFiles()).isEmpty();
+ assertThat(getIdeResolveFiles()).containsExactly("com/google/example/simple/simple.h");
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java
index 16c2657..0d3a5de 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java
@@ -252,6 +252,9 @@
NestedSet<Artifact> artifacts = outputGroupProvider.getOutputGroup(outputGroup);
for (Artifact artifact : artifacts) {
+ if (artifact.isSourceArtifact()) {
+ continue;
+ }
assertWithMessage("Artifact %s has no generating action", artifact)
.that(getGeneratingAction(artifact))
.isNotNull();
diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl b/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
index c3a6204..d3f27d2 100644
--- a/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
+++ b/src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl
@@ -228,7 +228,7 @@
transitive_define = cc_provider.defines,
transitive_system_include_directory = cc_provider.system_include_directories,
)
- ide_resolve_files = set()
+ ide_resolve_files = cc_provider.transitive_headers
return (c_rule_ide_info, ide_resolve_files)
def build_c_toolchain_ide_info(target, ctx):