summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonald Oussoren <ronaldoussoren@mac.com>2009-09-15 19:07:58 (GMT)
committerRonald Oussoren <ronaldoussoren@mac.com>2009-09-15 19:07:58 (GMT)
commitd097efe99f214894ae4d165db7a24c341936f6bd (patch)
tree841a756446ebba6848d807955f932558ec244a5c
parent2d352d05ac0e9f5ff645b36d4f03df663cb05fb5 (diff)
downloadcpython-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.py31
1 files changed, 19 insertions, 12 deletions
diff --git a/setup.py b/setup.py
index 14d0adb..a6aff54 100644
--- a/setup.py
+++ b/setup.py
@@ -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)],