diff options
author | Googler <noreply@google.com> | 2015-05-15 03:01:43 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2015-05-15 09:45:18 +0000 |
commit | db487ce72207a340589182bbd85b84d1a9375bd1 (patch) | |
tree | 2e3bd372f2604394dcaed03c9d67b33e5d4e9b94 /src | |
parent | c94655a903d8faddf01e57908230f94145221e49 (diff) |
RELNOTES: XCodegen: escape double quotes in copts.
--
MOS_MIGRATED_REVID=93684213
Diffstat (limited to 'src')
-rw-r--r-- | src/objc_tools/xcodegen/java/com/google/devtools/build/xcode/xcodegen/XcodeprojGeneration.java | 8 |
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()) { |