diff options
author | Ronald Oussoren <ronaldoussoren@mac.com> | 2009-09-15 19:07:58 (GMT) |
---|---|---|
committer | Ronald Oussoren <ronaldoussoren@mac.com> | 2009-09-15 19:07:58 (GMT) |
commit | d097efe99f214894ae4d165db7a24c341936f6bd (patch) | |
tree | 841a756446ebba6848d807955f932558ec244a5c | |
parent | 2d352d05ac0e9f5ff645b36d4f03df663cb05fb5 (diff) | |
download | cpython-d097efe99f214894ae4d165db7a24c341936f6bd.zip cpython-d097efe99f214894ae4d165db7a24c341936f6bd.tar.gz cpython-d097efe99f214894ae4d165db7a24c341936f6bd.tar.bz2 |
Merged revisions 74798 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r74798 | ronald.oussoren | 2009-09-15 20:33:33 +0200 (Tue, 15 Sep 2009) | 8 lines
MacOSX: detect the architectures supported by
Tk.framework and build _tkinter only for those
architectures.
This replaces the hardcoded solution that is no
longer valid now that 64-bit capable versions of
Tk are available on OSX.
........
-rw-r--r-- | setup.py | 31 |
1 files changed, 19 insertions, 12 deletions
@@ -1274,19 +1274,26 @@ class PyBuildExt(build_ext): # architectures. cflags = sysconfig.get_config_vars('CFLAGS')[0] archs = re.findall('-arch\s+(\w+)', cflags) - if 'x86_64' in archs or 'ppc64' in archs: - try: - archs.remove('x86_64') - except ValueError: - pass - try: - archs.remove('ppc64') - except ValueError: - pass - for a in archs: - frameworks.append('-arch') - frameworks.append(a) + tmpfile = os.path.join(self.build_temp, 'tk.arch') + if not os.path.exists(self.build_temp): + os.makedirs(self.build_temp) + + # Note: cannot use os.popen or subprocess here, that + # requires extensions that are not available here. + os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(F, tmpfile)) + fp = open(tmpfile) + detected_archs = [] + for ln in fp: + a = ln.split()[-1] + if a in archs: + detected_archs.append(ln.split()[-1]) + fp.close() + os.unlink(tmpfile) + + for a in detected_archs: + frameworks.append('-arch') + frameworks.append(a) ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], define_macros=[('WITH_APPINIT', 1)], |