From 3e6f29fcddf4c2d0306e29da01a6d2a49c036249 Mon Sep 17 00:00:00 2001 From: Greg Estren Date: Fri, 24 Jun 2016 16:47:31 +0000 Subject: 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 --- .../google/devtools/build/lib/analysis/constraints/Environment.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/main/java/com/google/devtools/build/lib/analysis/constraints/Environment.java') 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.of())) .addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY) .add(FileProvider.class, FileProvider.EMPTY) .add(FilesToRunProvider.class, FilesToRunProvider.EMPTY) -- cgit v1.2.3