Rename intellij_info.bzl outputs and output groups.
This will ensure that we can flip between the two smoothly,
or even use both native and skylark aspect in the same
command. This will make the transition smoother.
--
MOS_MIGRATED_REVID=140219469
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 500ebc8..98ac490 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
@@ -92,7 +92,13 @@
ArtifactLocation packageManifest = ruleIdeInfo.getJavaRuleIdeInfo().getPackageManifest();
assertNotNull(packageManifest);
- assertEquals(packageManifest.getRelativePath(), "com/google/example/simple.manifest");
+
+ if (isNativeTest()) {
+ assertEquals(packageManifest.getRelativePath(), "com/google/example/simple.manifest");
+ } else {
+ assertEquals(packageManifest.getRelativePath(), "com/google/example/simple.java-manifest");
+ }
+
}
@Test
@@ -492,7 +498,7 @@
" outs = ['gen_srcjar.jar'],",
" cmd = '',",
")");
- buildTarget("//com/google/example:imp");
+ buildRuleIdeInfo("//com/google/example:imp");
assertThat(getIdeResolveFiles())
.containsExactly(
"com/google/example/_ijar/imp/com/google/example/gen_jar-ijar.jar",
@@ -854,7 +860,7 @@
" outs = ['AndroidManifest.xml'],",
" cmd = '',",
")");
- buildTarget("//com/google/example:lib");
+ buildRuleIdeInfo("//com/google/example:lib");
assertThat(getIdeResolveFiles())
.containsExactly(
"com/google/example/liblib.jar",
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 6359514..e7caf58 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
@@ -148,7 +148,7 @@
return toolchainInfo;
}
- protected void buildTarget(String target) throws Exception {
+ private void buildTarget(String target) throws Exception {
AnalysisResult analysisResult =
update(
ImmutableList.of(target),
@@ -221,7 +221,7 @@
AspectValue aspectValue = aspects.iterator().next();
this.configuredAspect = aspectValue.getConfiguredAspect();
OutputGroupProvider provider = configuredAspect.getProvider(OutputGroupProvider.class);
- NestedSet<Artifact> outputGroup = provider.getOutputGroup("ide-info-text");
+ NestedSet<Artifact> outputGroup = provider.getOutputGroup("intellij-info-text");
Map<String, RuleIdeInfo> ruleIdeInfos = new HashMap<>();
for (Artifact artifact : outputGroup) {
Action generatingAction = getGeneratingAction(artifact);
@@ -269,11 +269,13 @@
}
protected List<String> getIdeResolveFiles() {
- return getOutputGroupResult(AndroidStudioInfoAspect.IDE_RESOLVE);
+ String name = isNativeTest() ? AndroidStudioInfoAspect.IDE_RESOLVE : "intellij-resolve";
+ return getOutputGroupResult(name);
}
protected List<String> getIdeCompileFiles() {
- return getOutputGroupResult(AndroidStudioInfoAspect.IDE_COMPILE);
+ String name = isNativeTest() ? AndroidStudioInfoAspect.IDE_COMPILE : "intellij-compile";
+ return getOutputGroupResult(name);
}
protected static List<RuleIdeInfo> findJavaToolchain(Map<String, RuleIdeInfo> ruleIdeInfos) {
diff --git a/src/test/shell/integration/BUILD b/src/test/shell/integration/BUILD
index 717b8a1..6e41530 100644
--- a/src/test/shell/integration/BUILD
+++ b/src/test/shell/integration/BUILD
@@ -151,6 +151,7 @@
"aswb-build",
"ide-info-text",
"aswb-build.txt",
+ "ide-resolve",
],
data = [
":test-deps",
@@ -164,10 +165,11 @@
srcs = ["ide_info_generation.sh"],
args = [
"@bazel_tools//tools/ide:intellij_info.bzl%intellij_info_aspect",
- "ide-info-text",
- "intellij-build.txt",
- "ide-info-text",
- "intellij-build.txt",
+ "intellij-info-text",
+ "intellij-info.txt",
+ "intellij-info-text",
+ "intellij-info.txt",
+ "intellij-resolve",
],
data = [
":test-deps",
diff --git a/src/test/shell/integration/ide_info_generation.sh b/src/test/shell/integration/ide_info_generation.sh
index b3e2873..b860f42 100755
--- a/src/test/shell/integration/ide_info_generation.sh
+++ b/src/test/shell/integration/ide_info_generation.sh
@@ -21,6 +21,7 @@
BINARY_OUTPUT=$3
TEXT_OUTPUT_GROUP=$4
TEXT_OUTPUT=$5
+RESOLVE_OUTPUT_GROUP=$6
# Load the test setup defined in the parent directory
CURRENT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
@@ -177,7 +178,7 @@
EOF
bazel build //com/google/example:complex \
- --aspects $ASPECT --output_groups "ide-resolve" \
+ --aspects $ASPECT --output_groups "$RESOLVE_OUTPUT_GROUP" \
|| fail "Expected success"
[ -e ${PRODUCT_NAME}-bin/com/google/example/libsimple.jar ] \
|| fail "${PRODUCT_NAME}-bin/com/google/example/libsimple.jar not found"
@@ -205,7 +206,7 @@
EOF
bazel build //com/google/example:test \
- --aspects $ASPECT --output_groups "ide-resolve" \
+ --aspects $ASPECT --output_groups "$RESOLVE_OUTPUT_GROUP" \
--experimental_show_artifacts \
|| fail "Expected success"
EXAMPLE_DIR="${PRODUCT_NAME}-bin/com/google/example"
diff --git a/tools/ide/intellij_info.bzl b/tools/ide/intellij_info.bzl
index 41ba980..37da936 100644
--- a/tools/ide/intellij_info.bzl
+++ b/tools/ide/intellij_info.bzl
@@ -119,7 +119,7 @@
)
def jars_from_output(output):
- """Collect jars for ide-resolve-files from Java output."""
+ """Collect jars for intellij-resolve-files from Java output."""
if output == None:
return []
return [jar
@@ -198,7 +198,7 @@
def build_py_rule_ide_info(target, ctx):
"""Build PyRuleIdeInfo.
- Returns a tuple of (PyRuleIdeInfo proto, a set of ide-resolve-files).
+ Returns a tuple of (PyRuleIdeInfo proto, a set of intellij-resolve-files).
(or (None, empty set) if the rule is not a python rule).
"""
if not hasattr(target, "py"):
@@ -215,7 +215,7 @@
def build_c_rule_ide_info(target, ctx):
"""Build CRuleIdeInfo.
- Returns a tuple of (CRuleIdeInfo proto, a set of ide-resolve-files).
+ Returns a tuple of (CRuleIdeInfo proto, a set of intellij-resolve-files).
(or (None, empty set) if the rule is not a C rule).
"""
if not hasattr(target, "cc"):
@@ -245,13 +245,13 @@
transitive_define = cc_provider.defines,
transitive_system_include_directory = cc_provider.system_include_directories,
)
- ide_resolve_files = cc_provider.transitive_headers
- return (c_rule_ide_info, ide_resolve_files)
+ intellij_resolve_files = cc_provider.transitive_headers
+ return (c_rule_ide_info, intellij_resolve_files)
def build_c_toolchain_ide_info(target, ctx):
"""Build CToolchainIdeInfo.
- Returns a pair of (CToolchainIdeInfo proto, a set of ide-resolve-files).
+ Returns a pair of (CToolchainIdeInfo proto, a set of intellij-resolve-files).
(or (None, empty set) if the rule is not a cc_toolchain rule).
"""
@@ -280,7 +280,8 @@
"""
Build JavaRuleIdeInfo.
- Returns a pair of (JavaRuleIdeInfo proto, a set of ide-info-files, a set of ide-resolve-files).
+ Returns a pair of
+ (JavaRuleIdeInfo proto, a set of ide-info-files, a set of intellij-resolve-files).
(or (None, empty set, empty set) if the rule is not Java rule).
"""
if not hasattr(target, "java") or ctx.rule.kind == "proto_library":
@@ -290,14 +291,13 @@
sources = sources_from_rule(ctx)
jars = [library_artifact(output) for output in target.java.outputs.jars]
- ide_resolve_files = set([jar
- for output in target.java.outputs.jars
- for jar in jars_from_output(output)])
+ output_jars = [jar for output in target.java.outputs.jars for jar in jars_from_output(output)]
+ intellij_resolve_files = set(output_jars)
gen_jars = []
if target.java.annotation_processing and target.java.annotation_processing.enabled:
gen_jars = [annotation_processing_jars(target.java.annotation_processing)]
- ide_resolve_files = ide_resolve_files | set([
+ intellij_resolve_files = intellij_resolve_files | set([
jar for jar in [target.java.annotation_processing.class_jar,
target.java.annotation_processing.source_jar]
if jar != None and not jar.is_source])
@@ -314,7 +314,7 @@
package_manifest = None
if java_sources:
- package_manifest = build_java_package_manifest(ctx, target, java_sources, ".manifest")
+ package_manifest = build_java_package_manifest(ctx, target, java_sources, ".java-manifest")
ide_info_files = ide_info_files | set([package_manifest])
filtered_gen_jar = None
@@ -325,7 +325,7 @@
gen_java_sources,
srcjars
)
- ide_resolve_files = ide_resolve_files | filtered_gen_resolve_files
+ intellij_resolve_files = intellij_resolve_files | filtered_gen_resolve_files
java_rule_ide_info = struct_omit_none(
sources = sources,
@@ -335,7 +335,7 @@
package_manifest = artifact_location(package_manifest),
filtered_gen_jar = filtered_gen_jar,
)
- return (java_rule_ide_info, ide_info_files, ide_resolve_files)
+ return (java_rule_ide_info, ide_info_files, intellij_resolve_files)
def build_java_package_manifest(ctx, target, source_files, suffix):
"""Builds the java package manifest for the given source files."""
@@ -398,8 +398,8 @@
jar=artifact_location(filtered_jar),
source_jar=artifact_location(filtered_source_jar),
)
- ide_resolve_files = set([filtered_jar, filtered_source_jar])
- return output_jar, ide_resolve_files
+ intellij_resolve_files = set([filtered_jar, filtered_source_jar])
+ return output_jar, intellij_resolve_files
def divide_java_sources(ctx):
"""Divide sources into plain java, generated java, and srcjars."""
@@ -424,7 +424,7 @@
def build_android_rule_ide_info(target, ctx, legacy_resource_label):
"""Build AndroidRuleIdeInfo.
- Returns a pair of (AndroidRuleIdeInfo proto, a set of ide-resolve-files).
+ Returns a pair of (AndroidRuleIdeInfo proto, a set of intellij-resolve-files).
(or (None, empty set) if the rule is not Android rule).
"""
if not hasattr(target, "android"):
@@ -444,8 +444,12 @@
resource_jar = library_artifact(android.resource_jar),
legacy_resources = legacy_resource_label,
)
- ide_resolve_files = set(jars_from_output(android.idl.output))
- return (android_rule_ide_info, ide_resolve_files)
+ intellij_resolve_files = set(jars_from_output(android.idl.output))
+
+ if android.manifest and not android.manifest.is_source:
+ intellij_resolve_files = intellij_resolve_files | set([android.manifest])
+
+ return (android_rule_ide_info, intellij_resolve_files)
def build_test_info(target, ctx):
"""Build TestInfo"""
@@ -514,37 +518,37 @@
# Roll up files from my prerequisites
prerequisites = direct_dep_targets + runtime_dep_targets + list_omit_none(legacy_resource_target)
- ide_info_text = set()
- ide_resolve_files = set()
- ide_compile_files = target.output_group("files_to_compile_INTERNAL_")
+ intellij_info_text = set()
+ intellij_resolve_files = set()
+ intellij_compile_files = target.output_group("files_to_compile_INTERNAL_")
intellij_infos = dict()
for dep in prerequisites:
- ide_info_text = ide_info_text | dep.intellij_info_files.ide_info_text
- ide_resolve_files = ide_resolve_files | dep.intellij_info_files.ide_resolve_files
+ intellij_info_text = intellij_info_text | dep.intellij_info_files.intellij_info_text
+ intellij_resolve_files = intellij_resolve_files | dep.intellij_info_files.intellij_resolve_files
if for_test:
intellij_infos.update(dep.intellij_infos)
# Collect python-specific information
- (py_rule_ide_info, py_ide_resolve_files) = build_py_rule_ide_info(target, ctx)
- ide_resolve_files = ide_resolve_files | py_ide_resolve_files
+ (py_rule_ide_info, py_resolve_files) = build_py_rule_ide_info(target, ctx)
+ intellij_resolve_files = intellij_resolve_files | py_resolve_files
# Collect C-specific information
- (c_rule_ide_info, c_ide_resolve_files) = build_c_rule_ide_info(target, ctx)
- ide_resolve_files = ide_resolve_files | c_ide_resolve_files
+ (c_rule_ide_info, c_resolve_files) = build_c_rule_ide_info(target, ctx)
+ intellij_resolve_files = intellij_resolve_files | c_resolve_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
+ (c_toolchain_ide_info, c_toolchain_resolve_files) = build_c_toolchain_ide_info(target, ctx)
+ intellij_resolve_files = intellij_resolve_files | c_toolchain_resolve_files
# Collect Java-specific information
- (java_rule_ide_info, java_ide_info_files, java_ide_resolve_files) = build_java_rule_ide_info(
+ (java_rule_ide_info, java_ide_info_files, java_resolve_files) = build_java_rule_ide_info(
target, ctx)
- ide_info_text = ide_info_text | java_ide_info_files
- ide_resolve_files = ide_resolve_files | java_ide_resolve_files
+ intellij_info_text = intellij_info_text | java_ide_info_files
+ intellij_resolve_files = intellij_resolve_files | java_resolve_files
# Collect Android-specific information
- (android_rule_ide_info, android_ide_resolve_files) = build_android_rule_ide_info(
+ (android_rule_ide_info, android_resolve_files) = build_android_rule_ide_info(
target, ctx, legacy_resource_label)
- ide_resolve_files = ide_resolve_files | android_ide_resolve_files
+ intellij_resolve_files = intellij_resolve_files | android_resolve_files
# legacy proto_library support
proto_library_legacy_java_ide_info = build_proto_library_legacy_java_ide_info(target, ctx)
@@ -574,9 +578,9 @@
)
# Output the ide information file.
- output = ctx.new_file(target.label.name + ".intellij-build.txt")
+ output = ctx.new_file(target.label.name + ".intellij-info.txt")
ctx.file_action(output, info.to_proto())
- ide_info_text = ide_info_text | set([output])
+ intellij_info_text = intellij_info_text | set([output])
if for_test:
intellij_infos[str(target.label)] = info
else:
@@ -586,13 +590,13 @@
return struct_omit_none(
intellij_aspect = True,
output_groups = {
- "ide-info-text" : ide_info_text,
- "ide-resolve" : ide_resolve_files,
- "ide-compile": ide_compile_files,
+ "intellij-info-text" : intellij_info_text,
+ "intellij-resolve" : intellij_resolve_files,
+ "intellij-compile": intellij_compile_files,
},
intellij_info_files = struct(
- ide_info_text = ide_info_text,
- ide_resolve_files = ide_resolve_files,
+ intellij_info_text = intellij_info_text,
+ intellij_resolve_files = intellij_resolve_files,
),
intellij_infos = intellij_infos,
export_deps = export_deps,