[pypy-commit] pypy default: _tkinter as an out-of-line module
arigo
noreply at buildbot.pypy.org
Tue May 19 21:49:31 CEST 2015
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r77409:bb2d681d55e6
Date: 2015-05-19 21:49 +0200
http://bitbucket.org/pypy/pypy/changeset/bb2d681d55e6/
Log: _tkinter as an out-of-line module
diff --git a/lib_pypy/_tkinter/__init__.py b/lib_pypy/_tkinter/__init__.py
--- a/lib_pypy/_tkinter/__init__.py
+++ b/lib_pypy/_tkinter/__init__.py
@@ -10,11 +10,7 @@
class TclError(Exception):
pass
-import cffi
-try:
- from .tklib import tklib, tkffi
-except cffi.VerificationError:
- raise ImportError("Tk headers and development libraries are required")
+from .tklib_cffi import ffi as tkffi, lib as tklib
from .app import TkApp
from .tclobj import TclObject as Tcl_Obj
diff --git a/lib_pypy/_tkinter/app.py b/lib_pypy/_tkinter/app.py
--- a/lib_pypy/_tkinter/app.py
+++ b/lib_pypy/_tkinter/app.py
@@ -1,6 +1,6 @@
# The TkApp class.
-from .tklib import tklib, tkffi
+from .tklib_cffi import ffi as tkffi, lib as tklib
from . import TclError
from .tclobj import TclObject, FromObj, FromTclString, AsObj, TypeCache
diff --git a/lib_pypy/_tkinter/tclobj.py b/lib_pypy/_tkinter/tclobj.py
--- a/lib_pypy/_tkinter/tclobj.py
+++ b/lib_pypy/_tkinter/tclobj.py
@@ -1,6 +1,6 @@
# TclObject, conversions with Python objects
-from .tklib import tklib, tkffi
+from .tklib_cffi import ffi as tkffi, lib as tklib
class TypeCache(object):
def __init__(self):
diff --git a/lib_pypy/_tkinter/tklib.py b/lib_pypy/_tkinter/tklib_build.py
rename from lib_pypy/_tkinter/tklib.py
rename to lib_pypy/_tkinter/tklib_build.py
--- a/lib_pypy/_tkinter/tklib.py
+++ b/lib_pypy/_tkinter/tklib_build.py
@@ -142,7 +142,7 @@
if os.path.isdir(incdirs[0]):
break
-tklib = tkffi.verify("""
+tkffi.set_source("_tkinter.tklib_cffi", """
#include <tcl.h>
#include <tk.h>
@@ -153,3 +153,6 @@
libraries=linklibs,
library_dirs = libdirs
)
+
+if __name__ == "__main__":
+ tkffi.compile()
diff --git a/pypy/tool/release/package.py b/pypy/tool/release/package.py
--- a/pypy/tool/release/package.py
+++ b/pypy/tool/release/package.py
@@ -57,7 +57,7 @@
if not sys.platform == 'win32':
modules += ['_curses_build.py', '_syslog_build.py', '_gdbm_build.py']
if not options.no_tk:
- modules.append('_tkinter')
+ modules.append('_tkinter/tklib_build.py')
for module in modules:
if module.endswith('.py'):
args = [str(pypy_c), module]
More information about the pypy-commit
mailing list