[issue15968] Incorporate Tcl/Tk/Tix into the Windows build process

Zachary Ware report at bugs.python.org
Wed Mar 12 19:44:51 CET 2014


Zachary Ware added the comment:

I started looking at this again recently, and discovered that building from within Visual Studio doesn't work with the proposed patches.

So, here's a different approach that adds 'Makefile' projects for each of Tcl, Tk, and Tix instead of using build_tkinter.py.  The "NMakeBuildCommandLine" for each new project is actually a short, fairly straightforward script that first checks for the necessary components in the install location ($(tcltkDir)) and bails out with a success message if they're already there, or builds if they're not.  The Tix project still requires http://bugs.python.org/file32998/issue15968_tix.svndiff to function properly on Debug builds (which means this patch isn't quite right, the proper Tix version number will be 8.4.3.4).

There are a couple of changes that are made trivial by the main change here, namely copying the Tcl and Tk DLLs into the output dir where _tkinter can find them, which means PCbuild/rt.bat doesn't need to mess with PATH (nor do individuals need to change PATH when testing Tkinter manually).  To simplify the new projects, I also simplified $(tcltkDir)/$(tcltk64Dir) and $(tcltk[64]Lib)/$(tcltk[64]LibDebug): there is now only $(tcltkDir) and $(tcltkLib).  x64.props redefines $(tcltkDir) to be $(externalsDir)\tcltk64, and $(tcltkLib) is defined in terms of $(tcltkDir) and $(TclDebugExt).

I've not tested every possible configuration, but I can confirm that Debug and Release configurations work as expected on both Win32 and x64 platforms, whether built by command line (msbuild) or Visual Studio.  There is an issue with PGInstrument/PGUpdate builds on Win32 (and probably x64, untested) where $(OutDir) is not set properly for the Tcl and Tk projects, and thus their DLLs are copied into $(SolutionDir) instead of the expected output dir.  There are other (unrelated to tkinter) issues with building PGI and PGO, though, so I don't consider that problem a blocker for this issue.

One thing I'm not certain about, should this go into maintenance branches (namely 3.4, possibly 3.3), or just default (after 3.4 is branched)?

----------
components: +Windows
versions: +Python 3.5
Added file: http://bugs.python.org/file34377/issue15968.v3.diff

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue15968>
_______________________________________


More information about the Python-bugs-list mailing list