diff options
author | 2016-08-17 19:03:18 +0000 | |
---|---|---|
committer | 2016-08-18 08:30:51 +0000 | |
commit | 4e9be54b134165e8df51b749f78a66bd592944a6 (patch) | |
tree | d4df525cb1dec7899fac9c5933d20a489360a76b /src/main/java/com/google/devtools | |
parent | bfaff29b1bafd7892a2197b7cf826e1be0ff3927 (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.java | 8 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java | 19 |
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 |