aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-07-20 15:09:23 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-07-21 15:13:38 -0400
commit54874d9782c9870045923b2b0b0ff7a0f2a0ceea (patch)
treee0d585a7c33b30afd76144c306fee1418f219583 /src/main/java/com/google/devtools/build/lib/rules/objc
parent2d93a47d97fbe2c2a95a03a17cf46b1e09acc910 (diff)
Fix up registerEnvironmentPlistAction for bazel on Mac.
When run under bazel on my local mac, the environment variables are cleared. This causes TMPDIR to be "" which causes this script to fail. Create a tempdir and use it instead of depending on TMPDIR. Remove tempdir at end to clean up. Quote all paths just to be extra safe that somebody hasn't named their Xcode something wonky. RELNOTES:NONE -- MOS_MIGRATED_REVID=98640412
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java33
1 files changed, 17 insertions, 16 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
index 025dac666b..779dc07be3 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ReleaseBundlingSupport.java
@@ -275,22 +275,23 @@ public final class ReleaseBundlingSupport {
// The resulting file is meant to be merged with the final bundle.
String command = Joiner.on(" && ").join(
"PLATFORM_PLIST=" + IosSdkCommands.platformDir(configuration) + "/Info.plist",
- "PLIST=${TMPDIR}/env.plist",
- "os_build=$(/usr/bin/defaults read ${PLATFORM_PLIST} BuildMachineOSBuild)",
- "compiler=$(/usr/bin/defaults read ${PLATFORM_PLIST} DTCompiler)",
- "platform_version=$(/usr/bin/defaults read ${PLATFORM_PLIST} Version)",
- "sdk_build=$(/usr/bin/defaults read ${PLATFORM_PLIST} DTSDKBuild)",
- "platform_build=$(/usr/bin/defaults read ${PLATFORM_PLIST} DTPlatformBuild)",
- "xcode_build=$(/usr/bin/defaults read ${PLATFORM_PLIST} DTXcodeBuild)",
- "xcode_version=$(/usr/bin/defaults read ${PLATFORM_PLIST} DTXcode)",
- "/usr/bin/defaults write ${PLIST} DTPlatformBuild -string ${platform_build}",
- "/usr/bin/defaults write ${PLIST} DTSDKBuild -string ${sdk_build}",
- "/usr/bin/defaults write ${PLIST} DTPlatformVersion -string ${platform_version}",
- "/usr/bin/defaults write ${PLIST} DTXcode -string ${xcode_version}",
- "/usr/bin/defaults write ${PLIST} DTXCodeBuild -string ${xcode_build}",
- "/usr/bin/defaults write ${PLIST} DTCompiler -string ${compiler}",
- "/usr/bin/defaults write ${PLIST} BuildMachineOSBuild -string ${os_build}",
- "cat ${PLIST} > " + getGeneratedEnvironmentPlist().getShellEscapedExecPathString());
+ "PLIST=$(mktemp -d -t bazel_environment)/env.plist",
+ "os_build=$(/usr/bin/defaults read \"${PLATFORM_PLIST}\" BuildMachineOSBuild)",
+ "compiler=$(/usr/bin/defaults read \"${PLATFORM_PLIST}\" DTCompiler)",
+ "platform_version=$(/usr/bin/defaults read \"${PLATFORM_PLIST}\" Version)",
+ "sdk_build=$(/usr/bin/defaults read \"${PLATFORM_PLIST}\" DTSDKBuild)",
+ "platform_build=$(/usr/bin/defaults read \"${PLATFORM_PLIST}\" DTPlatformBuild)",
+ "xcode_build=$(/usr/bin/defaults read \"${PLATFORM_PLIST}\" DTXcodeBuild)",
+ "xcode_version=$(/usr/bin/defaults read \"${PLATFORM_PLIST}\" DTXcode)",
+ "/usr/bin/defaults write \"${PLIST}\" DTPlatformBuild -string ${platform_build}",
+ "/usr/bin/defaults write \"${PLIST}\" DTSDKBuild -string ${sdk_build}",
+ "/usr/bin/defaults write \"${PLIST}\" DTPlatformVersion -string ${platform_version}",
+ "/usr/bin/defaults write \"${PLIST}\" DTXcode -string ${xcode_version}",
+ "/usr/bin/defaults write \"${PLIST}\" DTXCodeBuild -string ${xcode_build}",
+ "/usr/bin/defaults write \"${PLIST}\" DTCompiler -string ${compiler}",
+ "/usr/bin/defaults write \"${PLIST}\" BuildMachineOSBuild -string ${os_build}",
+ "cat \"${PLIST}\" > " + getGeneratedEnvironmentPlist().getShellEscapedExecPathString(),
+ "rm -rf \"${PLIST}\"");
ruleContext.registerAction(ObjcRuleClasses.spawnBashOnDarwinActionBuilder(command)
.setMnemonic("EnvironmentPlist")
.addOutput(getGeneratedEnvironmentPlist())