From 8d65681e947e7c95173e0944ec6ea0277e66d591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20v=2E=20L=C3=B6wis?= Date: Mon, 10 Jul 2006 07:23:48 +0000 Subject: [PATCH] Introduce DISTUTILS_USE_SDK as a flag to determine whether the SDK environment should be used. Fixes #1508010. --- Doc/dist/dist.tex | 17 ++++++++++++++--- Lib/distutils/msvccompiler.py | 2 +- Misc/NEWS | 4 ++++ 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Doc/dist/dist.tex b/Doc/dist/dist.tex index e95c0d33542..6f1d8bc6669 100644 --- a/Doc/dist/dist.tex +++ b/Doc/dist/dist.tex @@ -2873,9 +2873,20 @@ C compiler: \modulesynopsis{Microsoft Compiler} This module provides \class{MSVCCompiler}, an implementation of the abstract -\class{CCompiler} class for Microsoft Visual Studio. It should also work using -the freely available compiler provided as part of the .Net SDK download. XXX -download link. +\class{CCompiler} class for Microsoft Visual Studio. Typically, extension +modules need to be compiled with the same compiler that was used to compile +Python. For Python 2.3 and earlier, the compiler was Visual Studio 6. For +Python 2.4 and 2.5, the compiler is Visual Studio .NET 2003. The AMD64 +and Itanium binaries are created using the Platform SDK. + +\class{MSVCCompiler} will normally choose the right compiler, linker etc. +on its own. To override this choice, the environment variables +\var{DISTUTILS\_USE\_SDK} and \var{MSSdk} must be both set. \var{MSSdk} +indicates that the current environment has been setup by the SDK's +\code{SetEnv.Cmd} script, or that the environment variables had been +registered when the SDK was installed; \var{DISTUTILS\_USE\_SDK} indicates +that the distutils user has made an explicit choice to override the +compiler selection by \class{MSVCCompiler}. \section{\module{distutils.bcppcompiler} --- Borland Compiler} \declaremodule{standard}{distutils.bcppcompiler} diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py index d24d0ac6e0a..d725905bd0c 100644 --- a/Lib/distutils/msvccompiler.py +++ b/Lib/distutils/msvccompiler.py @@ -237,7 +237,7 @@ class MSVCCompiler (CCompiler) : def initialize(self): self.__paths = [] - if os.environ.has_key("MSSdk") and self.find_exe("cl.exe"): + if os.environ.has_key("DISTUTILS_USE_SDK") and os.environ.has_key("MSSdk") and self.find_exe("cl.exe"): # Assume that the SDK set up everything alright; don't try to be # smarter self.cc = "cl.exe" diff --git a/Misc/NEWS b/Misc/NEWS index 46f61692a43..d01c1b1edc7 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -39,6 +39,10 @@ Core and builtins Library ------- +- Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK + environment variable to be set in order to the SDK environment + for finding the compiler, include files, etc. + - Bug #1515998: Properly generate logical ids for files in bdist_msi. - warnings.py now ignores ImportWarning by default