aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2016-08-17 19:03:18 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-08-18 08:30:51 +0000
commit4e9be54b134165e8df51b749f78a66bd592944a6 (patch)
treed4df525cb1dec7899fac9c5933d20a489360a76b /src/main/java/com/google/devtools
parentbfaff29b1bafd7892a2197b7cf826e1be0ff3927 (diff)
Restore objc -> cc_inc_library deps, add regression test.
-- MOS_MIGRATED_REVID=130546999
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java19
2 files changed, 21 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
index 028054c4d2..0703a14b8d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
@@ -580,7 +580,13 @@ public final class ObjcCommon {
private static boolean isCcLibrary(TransitiveInfoCollection info) {
try {
AbstractConfiguredTarget target = (AbstractConfiguredTarget) info;
- return target.getTarget().getTargetKind().equals("cc_library rule");
+ String targetName = target.getTarget().getTargetKind();
+ for (String ruleClassName : ObjcRuleClasses.CompilingRule.ALLOWED_CC_DEPS_RULE_CLASSES) {
+ if (targetName.equals(ruleClassName + " rule")) {
+ return true;
+ }
+ }
+ return false;
} catch (Exception e) {
return false;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
index e499a3b6cf..0933b5bda1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java
@@ -27,6 +27,7 @@ import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
@@ -677,15 +678,23 @@ public class ObjcRuleClasses {
* Common attributes for {@code objc_*} rules that contain compilable content.
*/
public static class CompilingRule implements RuleDefinition {
+
/**
- * Rule class names which are allowed as targets of the 'deps' attribute of this rule.
+ * Rule class names for cc rules which are allowed as targets of the 'deps' attribute of this
+ * rule.
*/
- static final Iterable<String> ALLOWED_DEPS_RULE_CLASSES =
+ static final Iterable<String> ALLOWED_CC_DEPS_RULE_CLASSES =
ImmutableSet.of(
"cc_library",
- "cc_inc_library",
- "experimental_objc_library");
-
+ "cc_inc_library");
+ /**
+ * Rule class names which are allowed as targets of the 'deps' attribute of this rule.
+ */
+ static final Iterable<String> ALLOWED_DEPS_RULE_CLASSES =
+ Iterables.<String>concat(
+ ALLOWED_CC_DEPS_RULE_CLASSES,
+ ImmutableList.of("experimental_objc_library"));
+
@Override
public RuleClass build(Builder builder, RuleDefinitionEnvironment env) {
return builder