aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Greg Estren <gregce@google.com>2015-11-12 20:23:22 +0000
committerGravatar Lukacs Berki <lberki@google.com>2015-11-13 10:22:34 +0000
commit517bc6f698eca41356909499c98f91bc69141f2f (patch)
tree6f3c305f706c8f9928971163d5cd38c5ddd5ffd5 /src/main/java
parent4bbc2676910f95e584c4bfbdbbb02c4b59bd7d12 (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.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java10
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;