aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc_tools
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2015-05-15 03:01:43 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-05-15 09:45:18 +0000
commitdb487ce72207a340589182bbd85b84d1a9375bd1 (patch)
tree2e3bd372f2604394dcaed03c9d67b33e5d4e9b94 /src/objc_tools
parentc94655a903d8faddf01e57908230f94145221e49 (diff)
RELNOTES: XCodegen: escape double quotes in copts.
-- MOS_MIGRATED_REVID=93684213
Diffstat (limited to 'src/objc_tools')
-rw-r--r--src/objc_tools/xcodegen/java/com/google/devtools/build/xcode/xcodegen/XcodeprojGeneration.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/objc_tools/xcodegen/java/com/google/devtools/build/xcode/xcodegen/XcodeprojGeneration.java b/src/objc_tools/xcodegen/java/com/google/devtools/build/xcode/xcodegen/XcodeprojGeneration.java
index 64ba01fb99..4534459371 100644
--- a/src/objc_tools/xcodegen/java/com/google/devtools/build/xcode/xcodegen/XcodeprojGeneration.java
+++ b/src/objc_tools/xcodegen/java/com/google/devtools/build/xcode/xcodegen/XcodeprojGeneration.java
@@ -26,6 +26,8 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
+import com.google.common.escape.Escaper;
+import com.google.common.escape.Escapers;
import com.google.devtools.build.xcode.common.XcodeprojPath;
import com.google.devtools.build.xcode.util.Containing;
import com.google.devtools.build.xcode.util.Equaling;
@@ -83,6 +85,7 @@ public class XcodeprojGeneration {
public static final String FILE_TYPE_WRAPPER_BUNDLE = "wrapper.cfbundle";
public static final String FILE_TYPE_APP_EXTENSION = "wrapper.app-extension";
private static final String DEFAULT_OPTIONS_NAME = "Debug";
+ private static final Escaper QUOTE_ESCAPER = Escapers.builder().addEscape('"', "\\\"").build();
@VisibleForTesting
static final String APP_NEEDS_SOURCE_ERROR =
@@ -458,8 +461,11 @@ public class XcodeprojGeneration {
"INFOPLIST_FILE", "$(WORKSPACE_ROOT)/" + targetControl.getInfoplist());
}
+ // Double-quotes in copt strings need to be escaped for XCode.
if (targetControl.getCoptCount() > 0) {
- targetBuildConfigMap.put("OTHER_CFLAGS", NSObject.wrap(targetControl.getCoptList()));
+ List<String> escapedCopts = Lists.transform(
+ targetControl.getCoptList(), QUOTE_ESCAPER.asFunction());
+ targetBuildConfigMap.put("OTHER_CFLAGS", NSObject.wrap(escapedCopts));
}
targetBuildConfigMap.put("OTHER_LDFLAGS", NSObject.wrap(otherLdflags(targetControl)));
for (XcodeprojBuildSetting setting : targetControl.getBuildSettingList()) {