]> granicus.if.org Git - python/commitdiff
MacOSX: detect the architectures supported by
authorRonald Oussoren <ronaldoussoren@mac.com>
Tue, 15 Sep 2009 18:33:33 +0000 (18:33 +0000)
committerRonald Oussoren <ronaldoussoren@mac.com>
Tue, 15 Sep 2009 18:33:33 +0000 (18:33 +0000)
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.

setup.py

index 421271edca3cc9489fa30e952567a6cea5e45352..e12869721d3fcb3c8b0855384593bea03224d253 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1499,19 +1499,17 @@ 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)
+        fp = os.popen("file %s/Tk.framework/Tk | grep 'for architecture'"%(F,))
+        detected_archs = []
+        for ln in fp:
+            a = ln.split()[-1]
+            if a in archs:
+                detected_archs.append(ln.split()[-1])
+        fp.close()
+
+        for a in detected_archs:
+            frameworks.append('-arch')
+            frameworks.append(a)
 
         ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
                         define_macros=[('WITH_APPINIT', 1)],