Author: Armin Rigo <ar...@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] _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit