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 <rep...@bugs.python.org>
<http://bugs.python.org/issue15968>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to