| Index: pylib/gyp/mac_tool.py
|
| diff --git a/pylib/gyp/mac_tool.py b/pylib/gyp/mac_tool.py
|
| index 3ef16b23a8f6b243c374e2fcb544735e01a4e59d..eeeaceb0c7aa2388635855260b3d63edc58cd73a 100755
|
| --- a/pylib/gyp/mac_tool.py
|
| +++ b/pylib/gyp/mac_tool.py
|
| @@ -45,7 +45,7 @@ class MacTool(object):
|
| """Transforms a tool name like copy-info-plist to CopyInfoPlist"""
|
| return name_string.title().replace('-', '')
|
|
|
| - def ExecCopyBundleResource(self, source, dest):
|
| + def ExecCopyBundleResource(self, source, dest, convert_to_binary):
|
| """Copies a resource file to the bundle/Resources directory, performing any
|
| necessary compilation on each resource."""
|
| extension = os.path.splitext(source)[1].lower()
|
| @@ -62,7 +62,7 @@ class MacTool(object):
|
| elif extension == '.storyboard':
|
| return self._CopyXIBFile(source, dest)
|
| elif extension == '.strings':
|
| - self._CopyStringsFile(source, dest)
|
| + self._CopyStringsFile(source, dest, convert_to_binary)
|
| else:
|
| shutil.copy(source, dest)
|
|
|
| @@ -92,7 +92,11 @@ class MacTool(object):
|
| sys.stdout.write(line)
|
| return ibtoolout.returncode
|
|
|
| - def _CopyStringsFile(self, source, dest):
|
| + def _ConvertToBinary(self, dest):
|
| + subprocess.check_call([
|
| + 'xcrun', 'plutil', '-convert', 'binary1', '-o', dest, dest])
|
| +
|
| + def _CopyStringsFile(self, source, dest, convert_to_binary):
|
| """Copies a .strings file using iconv to reconvert the input into UTF-16."""
|
| input_code = self._DetectInputEncoding(source) or "UTF-8"
|
|
|
| @@ -112,6 +116,9 @@ class MacTool(object):
|
| fp.write(s.decode(input_code).encode('UTF-16'))
|
| fp.close()
|
|
|
| + if convert_to_binary == 'True':
|
| + self._ConvertToBinary(dest)
|
| +
|
| def _DetectInputEncoding(self, file_name):
|
| """Reads the first few bytes from file_name and tries to guess the text
|
| encoding. Returns None as a guess if it can't detect it."""
|
| @@ -131,7 +138,7 @@ class MacTool(object):
|
| else:
|
| return None
|
|
|
| - def ExecCopyInfoPlist(self, source, dest, *keys):
|
| + def ExecCopyInfoPlist(self, source, dest, convert_to_binary, *keys):
|
| """Copies the |source| Info.plist to the destination directory |dest|."""
|
| # Read the source Info.plist into memory.
|
| fd = open(source, 'r')
|
| @@ -185,6 +192,9 @@ class MacTool(object):
|
| # "compiled".
|
| self._WritePkgInfo(dest)
|
|
|
| + if convert_to_binary == 'True':
|
| + self._ConvertToBinary(dest)
|
| +
|
| def _WritePkgInfo(self, info_plist):
|
| """This writes the PkgInfo file from the data stored in Info.plist."""
|
| plist = plistlib.readPlist(info_plist)
|
|
|