[Python-checkins] cpython: Issue #9516: Port the revised deployment target processing for OSX from

ned.deily python-checkins at python.org
Wed Jun 29 05:24:53 CEST 2011


http://hg.python.org/cpython/rev/c1ae16fce76d
changeset: 71053:c1ae16fce76d
user: Ned Deily <nad at acm.org>
date: Tue Jun 28 20:04:24 2011 -0700
summary:
 Issue #9516: Port the revised deployment target processing for OSX from
distutils to packaging.
files:
 Lib/packaging/util.py | 23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/Lib/packaging/util.py b/Lib/packaging/util.py
--- a/Lib/packaging/util.py
+++ b/Lib/packaging/util.py
@@ -757,6 +757,9 @@
 else:
 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):
 """Run another program specified as a command list 'cmd' in a new process.
@@ -781,6 +784,26 @@
 if dry_run:
 logging.debug('dry run, no process actually spawned')
 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)
 if exit_status != 0:
 msg = "command %r failed with exit status %d"
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /