Patch from Rene Liebscher: this adds "--help-foo" options to list the
values that "--foo" can take for various commands: eg. what formats for
"sdist" and "bdist", what compilers for "build_ext" and "build_clib".
I have *not* reviewed this patch; I'm checking it in as-is because it also
fixes a paper-bag-over-head bug in bdist.py, and because I won't have
time to review it properly for several days: so someone else can
test it for me, instead!
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index 834d543..b146f89 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -726,10 +726,22 @@
# Map compiler types to (module_name, class_name) pairs -- ie. where to
# find the code that implements an interface to this compiler. (The module
# is assumed to be in the 'distutils' package.)
-compiler_class = { 'unix': ('unixccompiler', 'UnixCCompiler'),
- 'msvc': ('msvccompiler', 'MSVCCompiler'),
+compiler_class = { 'unix': ('unixccompiler', 'UnixCCompiler',"standard UNIX-style compiler"),
+ 'msvc': ('msvccompiler', 'MSVCCompiler',"Microsoft Visual C++"),
+ 'cygwin': ('cygwinccompiler', 'CygwinCCompiler',"Cygwin-Gnu-Win32-C-Compiler"),
+ 'mingw32': ('cygwinccompiler', 'Mingw32CCompiler',"MinGW32-C-Compiler (or cygwin in this mode)"),
}
+# prints all possible arguments to --compiler
+def show_compilers():
+ from distutils.fancy_getopt import FancyGetopt
+ list_of_compilers=[]
+ for compiler in compiler_class.keys():
+ list_of_compilers.append(("compiler="+compiler,None,compiler_class[compiler][2]))
+ list_of_compilers.sort()
+ pretty_printer=FancyGetopt(list_of_compilers)
+ pretty_printer.print_help("List of available compilers:")
+
def new_compiler (plat=None,
compiler=None,
@@ -755,7 +767,7 @@
if compiler is None:
compiler = default_compiler[plat]
- (module_name, class_name) = compiler_class[compiler]
+ (module_name, class_name,long_description) = compiler_class[compiler]
except KeyError:
msg = "don't know how to compile C/C++ code on platform '%s'" % plat
if compiler is not None: