aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
diff options
context:
space:
mode:
authorGravatar Greg Estren <gregce@google.com>2016-06-24 16:47:31 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-06-27 11:39:09 +0000
commit3e6f29fcddf4c2d0306e29da01a6d2a49c036249 (patch)
treed1e0fd23dee74e01accae7700a02bc70256ed53f /src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
parent28711af16c337976ba10d54cc50db8bc193e3bb3 (diff)
Provide clearer messaging when a build fails because a rule's
supported environments get refined away by incompatible select paths. This is a fix of TODO: https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/analysis/constraints/ConstraintSemantics.java#L597 Old message: ERROR: /workspace/foo/BUILD:3:1: in cc_binary rule //foo:main: all environments have been refined out of the following groups: //buildenv:environment_group New message: ERROR: /workspace/foo/BUILD:3:1: in cc_binary rule //foo:main: the current command-line flags disqualify all supported environments because of incompatible select() paths: environment: //buildenv:gce removed by: //util/lib:some_dep_with_select (/workspace/util/lib/BUILD:12:1) -- MOS_MIGRATED_REVID=125788804
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
index 52e10c8e48..dfdc7e4347 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.analysis.constraints;
+import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.FileProvider;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
@@ -23,6 +24,7 @@ import com.google.devtools.build.lib.analysis.RunfilesProvider;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.packages.EnvironmentGroup;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
+import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory;
/**
@@ -47,7 +49,8 @@ public class Environment implements RuleConfiguredTargetFactory {
EnvironmentCollection env = new EnvironmentCollection.Builder().put(group, label).build();
return new RuleConfiguredTargetBuilder(ruleContext)
- .addProvider(SupportedEnvironmentsProvider.class, new SupportedEnvironments(env, env))
+ .addProvider(SupportedEnvironmentsProvider.class,
+ new SupportedEnvironments(env, env, ImmutableMap.<Label, Target>of()))
.addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY)
.add(FileProvider.class, FileProvider.EMPTY)
.add(FilesToRunProvider.class, FilesToRunProvider.EMPTY)