diff options
author | Googler <noreply@google.com> | 2016-08-11 01:18:52 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2016-08-11 09:18:59 +0000 |
commit | 517510bebde7c44f7d906715080a9f35e98098ca (patch) | |
tree | f790f81b47b55f5d79b50179e47cd07444bbd61d /src/test/java/com/google | |
parent | 261c1f7b4df8cb24a546706766a26886f959686e (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')
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, |