aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-01-25 16:04:23 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-01-25 16:52:26 +0000
commit5db44f222687c49c4284bd2f47d58cc8f6545e6b (patch)
treebd6f542366e61e67c82a238c04e7bc0d83c5b93b /src/main/java/com/google
parent58581a35bf0d11e53669e875b4e4f060ebf5aaaf (diff)
*** Reason for rollback *** Violates layering - genrule should not depend on platform- or language-specific parts. *** Original change description *** Add a DEVELOPER_DIR make variable to genrules to propagate the apple xcode environment variable DEVELOPER_DIR to commands. If $(DEVELOPER_DIR) is included in the genrule command, we bootstrap the XCODE_VERSION_OVERRIDE environment variable to the command. The contract with the actual action executor is, if XCODE_VERSION_OVERRIDE is present in the environment, to additionally bootstrap the DEVELOPER_DIR absolute path to the command. -- MOS_MIGRATED_REVID=112951074
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/docgen/templates/be/make-variables.vm4
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRule.java21
3 files changed, 4 insertions, 26 deletions
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/be/make-variables.vm b/src/main/java/com/google/devtools/build/docgen/templates/be/make-variables.vm
index 8433d4903e..684f998b8f 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/be/make-variables.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/be/make-variables.vm
@@ -126,10 +126,6 @@ in your genrule's cmd attribute.
the tool is to use <code>$(location <i>toolname</i>)</code>,
where <i>toolname</i> must be listed in the <code>tools</code>
attribute for the genrule.</li>
- <li><code>DEVELOPER_DIR</code>:
- The base developer directory as defined on Apple architectures, most commonly
- used in invoking Apple tools such as <code>xcrun</code>.
- Supported only on Apple execution hosts.</li>
<li><code>GENDIR</code>: The base of the generated code
tree for the target architecture.</li>
<li><code>JAVABASE</code>:
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java
index 56344d6f2f..f1682dd16c 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/BazelGenRuleRule.java
@@ -31,8 +31,6 @@ import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.RuleClass;
import com.google.devtools.build.lib.packages.RuleClass.Builder;
-import com.google.devtools.build.lib.rules.apple.AppleConfiguration;
-import com.google.devtools.build.lib.rules.apple.AppleToolchain.RequiresXcodeConfigRule;
/**
* Rule definition for the genrule rule.
@@ -49,7 +47,6 @@ public final class BazelGenRuleRule implements RuleDefinition {
<code>srcs</code> attribute.
<!-- #END_BLAZE_RULE.NAME --> */
return builder
- .requiresConfigurationFragments(AppleConfiguration.class)
.setOutputToGenfiles()
/* <!-- #BLAZE_RULE(genrule).ATTRIBUTE(srcs) -->
A list of inputs for this rule, such as source files to process.
@@ -218,7 +215,7 @@ public final class BazelGenRuleRule implements RuleDefinition {
public Metadata getMetadata() {
return RuleDefinition.Metadata.builder()
.name("genrule")
- .ancestors(BaseRuleClasses.RuleBase.class, RequiresXcodeConfigRule.class)
+ .ancestors(BaseRuleClasses.RuleBase.class)
.factoryClass(GenRule.class)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRule.java
index 63fa6457de..d9c855a32a 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/genrule/GenRule.java
@@ -39,23 +39,17 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.packages.TargetUtils;
import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory;
-import com.google.devtools.build.lib.rules.apple.AppleToolchain;
-import com.google.devtools.build.lib.rules.apple.XcodeConfigProvider;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.List;
import java.util.Map;
-import java.util.regex.Pattern;
/**
* An implementation of genrule.
*/
public class GenRule implements RuleConfiguredTargetFactory {
- private static final Pattern DEVELOPER_DIR_MAKE_VARIABLE =
- Pattern.compile("\\$\\((DEVELOPER_DIR)\\)");
-
private Artifact getExecutable(RuleContext ruleContext, NestedSet<Artifact> filesToBuild) {
if (Iterables.size(filesToBuild) == 1) {
Artifact out = Iterables.getOnlyElement(filesToBuild);
@@ -105,15 +99,6 @@ public class GenRule implements RuleConfiguredTargetFactory {
String command = String.format("source %s; %s",
ruleContext.getPrerequisiteArtifact("$genrule_setup", Mode.HOST).getExecPath(),
baseCommand);
-
- ImmutableMap.Builder<String, String> envBuilder = ImmutableMap.<String, String>builder()
- .putAll(ruleContext.getConfiguration().getLocalShellEnvironment());
-
- if (DEVELOPER_DIR_MAKE_VARIABLE.matcher(command).find()) {
- XcodeConfigProvider xcodeConfigProvider =
- ruleContext.getPrerequisite(":xcode_config", Mode.HOST, XcodeConfigProvider.class);
- envBuilder.putAll(AppleToolchain.appleHostSystemEnv(xcodeConfigProvider));
- }
command = resolveCommand(ruleContext, command, resolvedSrcs, filesToBuild);
@@ -122,6 +107,8 @@ public class GenRule implements RuleConfiguredTargetFactory {
message = "Executing genrule";
}
+ ImmutableMap<String, String> env = ruleContext.getConfiguration().getLocalShellEnvironment();
+
Map<String, String> executionInfo = Maps.newLinkedHashMap();
executionInfo.putAll(TargetUtils.getExecutionInfo(ruleContext.getRule()));
@@ -149,7 +136,7 @@ public class GenRule implements RuleConfiguredTargetFactory {
inputs.build(),
filesToBuild,
argv,
- envBuilder.build(),
+ env,
ImmutableMap.copyOf(executionInfo),
commandHelper.getRemoteRunfileManifestMap(),
message + ' ' + ruleContext.getLabel()));
@@ -211,8 +198,6 @@ public class GenRule implements RuleConfiguredTargetFactory {
PathFragment relPath = ruleContext.getRule().getLabel().getPackageFragment();
return dir.getRelative(relPath).getPathString();
}
- } else if (DEVELOPER_DIR_MAKE_VARIABLE.matcher("$(" + name + ")").find()) {
- return "$${DEVELOPER_DIR}";
} else {
return super.lookupMakeVariable(name);
}