]> granicus.if.org Git - python/commitdiff
Fixed for #1601: IDLE not working correctly on Windows (Py30a2/IDLE30a1)
authorChristian Heimes <christian@cheimes.de>
Tue, 18 Dec 2007 03:38:03 +0000 (03:38 +0000)
committerChristian Heimes <christian@cheimes.de>
Tue, 18 Dec 2007 03:38:03 +0000 (03:38 +0000)
Amaury's ideas works great. Should we build the Python core with WINVER=0x0500 and _WIN32_WINNT=0x0500, too?

PCbuild9/_tkinter.vcproj
PCbuild9/build_tkinter.py
PCbuild9/pyproject.vsprops

index f89894c343f8db32cb6d77305df8fee0501467da..e3baa5cee17da484a94f14b6f94124c53a3089b7 100644 (file)
@@ -56,7 +56,7 @@
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib $(tcltkDir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltkLib)"
                        />
                        <Tool
                                Name="VCALinkTool"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib $(tcltk64Dir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltk64Lib)"
                        />
                        <Tool
                                Name="VCALinkTool"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib $(tcltkDir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltkLib)"
                        />
                        <Tool
                                Name="VCALinkTool"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib $(tcltk64Dir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltk64Lib)"
                        />
                        <Tool
                                Name="VCALinkTool"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib $(tcltkDir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltkLib)"
                        />
                        <Tool
                                Name="VCALinkTool"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib $(tcltk64Dir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltk64Lib)"
                                TargetMachine="17"
                        />
                        <Tool
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib $(tcltkDir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltkLib)"
                        />
                        <Tool
                                Name="VCALinkTool"
                        />
                        <Tool
                                Name="VCLinkerTool"
-                               AdditionalDependencies="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib $(tcltk64Dir)\lib\tix8.4\tix84.lib"
+                               AdditionalDependencies="$(tcltk64Lib)"
                                TargetMachine="17"
                        />
                        <Tool
index 3e24d00a8eb7be314510374c8d0850bb2cdcdf11..dada3865f9e5088c6c7d44fa7a4b10812ba39ab6 100644 (file)
@@ -12,14 +12,24 @@ import shutil
 here = os.path.abspath(os.path.dirname(__file__))
 par = os.path.pardir
 
-TCL = "tcl8.4.16"
-TK = "tk8.4.16"
-TIX = "tix-8.4.0"
-#TIX = "Tix8.4.2"
-ROOT = os.path.abspath(os.path.join(here, par, par))
-NMAKE = "nmake /nologo "
+if 1:
+    TCL = "tcl8.4.16"
+    TK = "tk8.4.16"
+    TIX = "tix-8.4.0"
+else:
+    TCL = "tcl8.5b3"
+    TK = "tcl8.5b3"
+    TIX = "Tix8.4.2"
 
-def system(cmd):
+ROOT = os.path.abspath(os.path.join(here, par, par))
+# Windows 2000 compatibility: WINVER 0x0500
+# http://msdn2.microsoft.com/en-us/library/aa383745.aspx
+NMAKE = "nmake /nologo /f %s COMPILERFLAGS=-DWINVER=0x0500 %s %s"
+
+def nmake(makefile, command="", **kw):
+    defines = ' '.join(k+'='+v for k, v in kw.items())
+    cmd = NMAKE % (makefile, defines, command)
+    print("\n\n"+cmd+"\n")
     if os.system(cmd) != 0:
         raise RuntimeError(cmd)
 
@@ -35,31 +45,29 @@ def build(platform, clean):
 
     # TCL
     tcldir = os.path.join(ROOT, TCL)
-    if True:
+    if 1:
         os.chdir(os.path.join(tcldir, "win"))
         if clean:
-            system(NMAKE + "/f makefile.vc clean")
-        system(NMAKE + "/f makefile.vc")
-        system(NMAKE + "/f makefile.vc INSTALLDIR=%s install" % dest)
+            nmake("makefile.vc", "clean")
+        nmake("makefile.vc")
+        nmake("makefile.vc", "install", INSTALLDIR=dest)
 
     # TK
-    if True:
+    if 1:
         os.chdir(os.path.join(ROOT, TK, "win"))
         if clean:
-            system(NMAKE + "/f makefile.vc clean")
-        system(NMAKE + "/f makefile.vc TCLDIR=%s" % tcldir)
-        system(NMAKE + "/f makefile.vc TCLDIR=%s INSTALLDIR=%s install" %
-            (tcldir, dest))
+            nmake("makefile.vc", "clean", TCLDIR=tcldir)
+        nmake("makefile.vc", TCLDIR=tcldir)
+        nmake("makefile.vc", "install", TCLDIR=tcldir, INSTALLDIR=dest)
 
     # TIX
-    if True:
+    if 1:
         # python9.mak is available at http://svn.python.org
         os.chdir(os.path.join(ROOT, TIX, "win"))
         if clean:
-            system(NMAKE + "/f python9.mak clean")
-        system(NMAKE + "/f python9.mak MACHINE=%s" % machine)
-        system(NMAKE + "/f python9.mak install")
-
+            nmake("python9.mak", "clean")
+        nmake("python9.mak", MACHINE=machine)
+        nmake("python9.mak", "install")
 
 def main():
     if len(sys.argv) < 2 or sys.argv[1] not in ("Win32", "x64"):
index 9b5b3ea2599e25311f964f2c244f21c35b8a2b22..eaea0be4c6050f79ca3ae9872961c659dd4c85ff 100644 (file)
                Name="tcltk64Dir"
                Value="..\..\tcltk64"
        />
+       <UserMacro
+               Name="tcltkLib"
+               Value="$(tcltkDir)\lib\tcl84.lib $(tcltkDir)\lib\tk84.lib $(tcltkDir)\lib\tix8.4\tix84.lib"
+       />
+       <UserMacro
+               Name="tcltk64Lib"
+               Value="$(tcltk64Dir)\lib\tcl84.lib $(tcltk64Dir)\lib\tk84.lib $(tcltk64Dir)\lib\tix8.4\tix84.lib"
+       />
 </VisualStudioPropertySheet>