Source release 15.0.0

This commit is contained in:
John W. Bruce
2019-02-28 16:25:30 -08:00
parent f51edaba5a
commit 66628486b5
2672 changed files with 260431 additions and 762489 deletions

View File

@@ -8,6 +8,8 @@
These functions are executed via gyp-mac-tool when using the Makefile generator.
"""
from __future__ import print_function
import fcntl
import fnmatch
import glob
@@ -16,7 +18,6 @@ import os
import plistlib
import re
import shutil
import string
import struct
import subprocess
import sys
@@ -155,11 +156,11 @@ class MacTool(object):
fp.close()
return None
fp.close()
if header.startswith("\xFE\xFF"):
if header.startswith(b"\xFE\xFF"):
return "UTF-16"
elif header.startswith("\xFF\xFE"):
elif header.startswith(b"\xFF\xFE"):
return "UTF-16"
elif header.startswith("\xEF\xBB\xBF"):
elif header.startswith(b"\xEF\xBB\xBF"):
return "UTF-8"
else:
return None
@@ -174,7 +175,7 @@ class MacTool(object):
# Insert synthesized key/value pairs (e.g. BuildMachineOSBuild).
plist = plistlib.readPlistFromString(lines)
if keys:
plist = dict(plist.items() + json.loads(keys[0]).items())
plist.update(json.loads(keys[0]))
lines = plistlib.writePlistToString(plist)
# Go through all the environment variables and replace them as variables in
@@ -185,7 +186,7 @@ class MacTool(object):
continue
evar = '${%s}' % key
evalue = os.environ[key]
lines = string.replace(lines, evar, evalue)
lines = lines.replace(evar, evalue)
# Xcode supports various suffices on environment variables, which are
# all undocumented. :rfc1034identifier is used in the standard project
@@ -195,11 +196,11 @@ class MacTool(object):
# in a URL either -- oops, hence :rfc1034identifier was born.
evar = '${%s:identifier}' % key
evalue = IDENT_RE.sub('_', os.environ[key])
lines = string.replace(lines, evar, evalue)
lines = lines.replace(evar, evalue)
evar = '${%s:rfc1034identifier}' % key
evalue = IDENT_RE.sub('-', os.environ[key])
lines = string.replace(lines, evar, evalue)
lines = lines.replace(evar, evalue)
# Remove any keys with values that haven't been replaced.
lines = lines.split('\n')
@@ -270,7 +271,7 @@ class MacTool(object):
_, err = libtoolout.communicate()
for line in err.splitlines():
if not libtool_re.match(line) and not libtool_re5.match(line):
print >>sys.stderr, line
print(line, file=sys.stderr)
# Unconditionally touch the output .a file on the command line if present
# and the command succeeded. A bit hacky.
if not libtoolout.returncode:
@@ -385,7 +386,7 @@ class MacTool(object):
])
if keys:
keys = json.loads(keys)
for key, value in keys.iteritems():
for key, value in keys.items():
arg_name = '--' + key
if isinstance(value, bool):
if value:
@@ -480,8 +481,9 @@ class MacTool(object):
profiles_dir = os.path.join(
os.environ['HOME'], 'Library', 'MobileDevice', 'Provisioning Profiles')
if not os.path.isdir(profiles_dir):
print >>sys.stderr, (
'cannot find mobile provisioning for %s' % bundle_identifier)
print((
'cannot find mobile provisioning for %s' % bundle_identifier),
file=sys.stderr)
sys.exit(1)
provisioning_profiles = None
if profile:
@@ -502,8 +504,9 @@ class MacTool(object):
valid_provisioning_profiles[app_id_pattern] = (
profile_path, profile_data, team_identifier)
if not valid_provisioning_profiles:
print >>sys.stderr, (
'cannot find mobile provisioning for %s' % bundle_identifier)
print((
'cannot find mobile provisioning for %s' % bundle_identifier),
file=sys.stderr)
sys.exit(1)
# If the user has multiple provisioning profiles installed that can be
# used for ${bundle_identifier}, pick the most specific one (ie. the
@@ -527,7 +530,7 @@ class MacTool(object):
def _MergePlist(self, merged_plist, plist):
"""Merge |plist| into |merged_plist|."""
for key, value in plist.iteritems():
for key, value in plist.items():
if isinstance(value, dict):
merged_value = merged_plist.get(key, {})
if isinstance(merged_value, dict):
@@ -637,7 +640,7 @@ class MacTool(object):
the key was not found.
"""
if isinstance(data, str):
for key, value in substitutions.iteritems():
for key, value in substitutions.items():
data = data.replace('$(%s)' % key, value)
return data
if isinstance(data, list):
@@ -667,7 +670,7 @@ def WriteHmap(output_name, filelist):
count = len(filelist)
capacity = NextGreaterPowerOf2(count)
strings_offset = 24 + (12 * capacity)
max_value_length = len(max(filelist.items(), key=lambda (k,v):len(v))[1])
max_value_length = len(max(filelist.items(), key=lambda t: len(t[1]))[1])
out = open(output_name, "wb")
out.write(struct.pack('<LHHLLLL', magic, version, _reserved, strings_offset,