Commit fceb4120 authored by Ned Deily's avatar Ned Deily

Issue #9516: Port the revised deployment target processing for OSX from

distutils to packaging.
parent 5c727cb9
...@@ -757,6 +757,9 @@ def split_leading_dir(path): ...@@ -757,6 +757,9 @@ def split_leading_dir(path):
else: else:
return path, '' return path, ''
if sys.platform == 'darwin':
_cfg_target = None
_cfg_target_split = None
def spawn(cmd, search_path=True, verbose=0, dry_run=False, env=None): def spawn(cmd, search_path=True, verbose=0, dry_run=False, env=None):
"""Run another program specified as a command list 'cmd' in a new process. """Run another program specified as a command list 'cmd' in a new process.
...@@ -781,6 +784,26 @@ def spawn(cmd, search_path=True, verbose=0, dry_run=False, env=None): ...@@ -781,6 +784,26 @@ def spawn(cmd, search_path=True, verbose=0, dry_run=False, env=None):
if dry_run: if dry_run:
logging.debug('dry run, no process actually spawned') logging.debug('dry run, no process actually spawned')
return return
if sys.platform == 'darwin':
global _cfg_target, _cfg_target_split
if _cfg_target is None:
_cfg_target = sysconfig.get_config_var(
'MACOSX_DEPLOYMENT_TARGET') or ''
if _cfg_target:
_cfg_target_split = [int(x) for x in _cfg_target.split('.')]
if _cfg_target:
# ensure that the deployment target of build process is not less
# than that used when the interpreter was built. This ensures
# extension modules are built with correct compatibility values
env = env or os.environ
cur_target = env.get('MACOSX_DEPLOYMENT_TARGET', _cfg_target)
if _cfg_target_split > [int(x) for x in cur_target.split('.')]:
my_msg = ('$MACOSX_DEPLOYMENT_TARGET mismatch: '
'now "%s" but "%s" during configure'
% (cur_target, _cfg_target))
raise PackagingPlatformError(my_msg)
env = dict(env, MACOSX_DEPLOYMENT_TARGET=cur_target)
exit_status = subprocess.call(cmd, env=env) exit_status = subprocess.call(cmd, env=env)
if exit_status != 0: if exit_status != 0:
msg = "command %r failed with exit status %d" msg = "command %r failed with exit status %d"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment