aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com/google
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-08-11 01:18:52 +0000
committerGravatar Yue Gan <yueg@google.com>2016-08-11 09:18:59 +0000
commit517510bebde7c44f7d906715080a9f35e98098ca (patch)
treef790f81b47b55f5d79b50179e47cd07444bbd61d /src/test/java/com/google
parent261c1f7b4df8cb24a546706766a26886f959686e (diff)
Add ide-compile output group to IDE aspect.
This output group will contain all artifacts that are needed to compile the project (and get compilation errors), but aren't needed during the resolve step. Initially ide-compile is the object file output from any cc_* rule, so we can get compile errors. -- MOS_MIGRATED_REVID=129937436
Diffstat (limited to 'src/test/java/com/google')
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTest.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/ideinfo/intellij_info.bzl18
3 files changed, 19 insertions, 7 deletions
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 998ec257b5..85ee79c0ab 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
@@ -1360,6 +1360,10 @@ public class AndroidStudioInfoAspectTest extends AndroidStudioInfoAspectTestBase
assertThat(ruleIdeInfo.getDependenciesList()).contains("//com/google/example:lib");
assertThat(ruleIdeInfo.getDependenciesList()).hasSize(2);
+
+ assertThat(getIdeCompileFiles()).containsExactly(
+ "com/google/example/liblib.a",
+ "com/google/example/libsimple.a");
}
@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 0d3a5de6d4..3298a1175f 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
@@ -271,6 +271,10 @@ abstract class AndroidStudioInfoAspectTestBase extends BuildViewTestCase {
return getOutputGroupResult(AndroidStudioInfoAspect.IDE_RESOLVE);
}
+ protected List<String> getIdeCompileFiles() {
+ return getOutputGroupResult(AndroidStudioInfoAspect.IDE_COMPILE);
+ }
+
protected static List<RuleIdeInfo> findJavaToolchain(Map<String, RuleIdeInfo> ruleIdeInfos) {
List<RuleIdeInfo> result = Lists.newArrayList();
for (RuleIdeInfo ruleIdeInfo : ruleIdeInfos.values()) {
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 1d17d19943..75e71e4e2f 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
@@ -198,11 +198,11 @@ def tool_label(label_str):
def build_c_rule_ide_info(target, ctx):
"""Build CRuleIdeInfo.
- Returns a pair of (CRuleIdeInfo proto, a set of ide-resolve-files).
- (or (None, empty set) if the rule is not a C rule).
+ Returns a tuple of (CRuleIdeInfo proto, a set of ide-resolve-files, a set of ide-compile-files).
+ (or (None, empty set, empty set) if the rule is not a C rule).
"""
if not hasattr(target, "cc"):
- return (None, set())
+ return (None, set(), set())
sources = sources_from_rule(ctx)
@@ -229,7 +229,8 @@ def build_c_rule_ide_info(target, ctx):
transitive_system_include_directory = cc_provider.system_include_directories,
)
ide_resolve_files = cc_provider.transitive_headers
- return (c_rule_ide_info, ide_resolve_files)
+ ide_compile_files = cc_provider.libs
+ return (c_rule_ide_info, ide_resolve_files, ide_compile_files)
def build_c_toolchain_ide_info(target, ctx):
"""Build CToolchainIdeInfo.
@@ -427,6 +428,7 @@ def _aspect_impl_helper(target, ctx, for_test):
prerequisites = direct_dep_targets + runtime_dep_targets + list_omit_none(legacy_resource_target)
ide_info_text = set()
ide_resolve_files = set()
+ ide_compile_files = set()
intellij_infos = dict()
for dep in prerequisites:
ide_info_text = ide_info_text | dep.intellij_info_files.ide_info_text
@@ -435,8 +437,9 @@ def _aspect_impl_helper(target, ctx, for_test):
intellij_infos.update(dep.intellij_infos)
# Collect C-specific information
- (c_rule_ide_info, c_ide_resolve_files) = build_c_rule_ide_info(target, ctx)
+ (c_rule_ide_info, c_ide_resolve_files, c_ide_compile_files) = build_c_rule_ide_info(target, ctx)
ide_resolve_files = ide_resolve_files | c_ide_resolve_files
+ ide_compile_files = ide_compile_files | c_ide_compile_files
(c_toolchain_ide_info, c_toolchain_ide_resolve_files) = build_c_toolchain_ide_info(target, ctx)
ide_resolve_files = ide_resolve_files | c_toolchain_ide_resolve_files
@@ -491,8 +494,9 @@ def _aspect_impl_helper(target, ctx, for_test):
return struct_omit_none(
intellij_aspect = True,
output_groups = {
- "ide-info-text" : ide_info_text,
- "ide-resolve" : ide_resolve_files,
+ "ide-info-text" : ide_info_text,
+ "ide-resolve" : ide_resolve_files,
+ "ide-compile": ide_compile_files,
},
intellij_info_files = struct(
ide_info_text = ide_info_text,