diff options
author | 2015-11-12 20:23:22 +0000 | |
---|---|---|
committer | 2015-11-13 10:22:34 +0000 | |
commit | 517bc6f698eca41356909499c98f91bc69141f2f (patch) | |
tree | 6f3c305f706c8f9928971163d5cd38c5ddd5ffd5 /src/main/java | |
parent | 4bbc2676910f95e584c4bfbdbbb02c4b59bd7d12 (diff) |
Use the new BuildConfiguration.equalsOrIsSupersetOf
in CcLibraryHelper.
Also add a check for null configurations.
--
MOS_MIGRATED_REVID=107709170
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java | 3 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java | 10 |
2 files changed, 5 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java index 1ec1858d77..930f1c5ece 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java @@ -1094,7 +1094,8 @@ public final class BuildConfiguration { */ public boolean equalsOrIsSupersetOf(BuildConfiguration other) { return this.equals(other) - || (outputRoots.equals(other.outputRoots) + || (other != null + && outputRoots.equals(other.outputRoots) && actionsEnabled == other.actionsEnabled && fragments.values().containsAll(other.fragments.values()) && buildOptions.getOptions().containsAll(other.buildOptions.getOptions())); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java index cce02514eb..e0ec3245c5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java @@ -394,13 +394,9 @@ public final class CcLibraryHelper { */ public CcLibraryHelper addDeps(Iterable<? extends TransitiveInfoCollection> deps) { for (TransitiveInfoCollection dep : deps) { - BuildConfiguration depConfig = dep.getConfiguration(); - if (depConfig != null && depConfig.hasFragment(CppConfiguration.class)) { - // We can't just check for configuration equality because the dep configuration may - // not have all the fragments that rule's configuration does. - Preconditions.checkState(depConfig.getFragment(CppConfiguration.class).equals( - configuration.getFragment(CppConfiguration.class))); - } + Preconditions.checkState(dep.getConfiguration() == null + || configuration.equalsOrIsSupersetOf(dep.getConfiguration()), + "dep " + dep.getLabel() + " has a different config than " + ruleContext.getLabel()); this.deps.add(dep); } return this; |