Commit [771b6f] legacy-trunk  Maximize  Restore  History

This patch fixes the following bugs:

[#413582] g++ must be called for c++ extensions
[#454030] distutils cannot link C++ code with GCC

topdir = "Lib/distutils"

* bcppcompiler.py
(BCPPCompiler.create_static_lib): Fixed prototype, removing extra_preargs
and extra_postargs parameters. Included target_lang parameter.
(BCPPCompiler.link): Included target_lang parameter.

* msvccompiler.py
(MSVCCompiler.create_static_lib): Fixed prototype, removing extra_preargs
and extra_postargs parameters. Included target_lang parameter.
(MSVCCompiler.link): Included target_lang parameter.

* ccompiler.py
(CCompiler): New language_map and language_order attributes, used by
CCompiler.detect_language().

(CCompiler.detect_language): New method, will return the language of
a given source, or list of sources. Individual source language is
detected using the language_map dict. When mixed sources are used,
language_order will stablish the language precedence.

(CCompiler.create_static_lib, CCompiler.link, CCompiler.link_executable,
CCompiler.link_shared_object, CCompiler.link_shared_lib):
Inlcuded target_lang parameter.

* cygwinccompiler.py
(CygwinCCompiler.link): Included target_lang parameter.

* emxccompiler.py
(EMXCCompiler.link): Included target_lang parameter.

* mwerkscompiler.py
(MWerksCompiler.link): Included target_lang parameter.

* extension.py
(Extension.__init__): New 'language' parameter/attribute, initialized
to None by default. If provided will overlap the automatic detection
made by CCompiler.detect_language(), in build_ext command.

* sysconfig.py
(customize_compiler): Check Makefile for CXX option, and also the
environment variable CXX. Use the resulting value in the 'compiler_cxx'
parameter of compiler.set_executables().

* unixccompiler.py
(UnixCCompiler): Included 'compiler_cxx' in executables dict, defaulting
to 'cc'.
(UnixCCompiler.create_static_lib): Included target_lang parameter.
(UnixCCompiler.link): Included target_lang parameter, and made
linker command use compiler_cxx, if target_lang is 'c++'.

* command/build_ext.py
(build_ext.build_extension): Pass new ext.language attribute
to compiler.link_shared_object()'s target_lang parameter. If
ext.language is not provided, detect language using
compiler.detect_language(sources) instead.

* command/config.py
(config._link): Pass already available lang parameter as target_lang
parameter of compiler.link_executable().

Gustavo Niemeyer Gustavo Niemeyer 2002-11-05

changed Lib/distutils/bcppcompiler.py
changed Lib/distutils/ccompiler.py
changed Lib/distutils/command/build_ext.py
changed Lib/distutils/command/config.py
changed Lib/distutils/cygwinccompiler.py
changed Lib/distutils/emxccompiler.py
changed Lib/distutils/extension.py
changed Lib/distutils/msvccompiler.py
changed Lib/distutils/mwerkscompiler.py
changed Lib/distutils/sysconfig.py
changed Lib/distutils/unixccompiler.py
Lib/distutils/bcppcompiler.py Diff Switch to side-by-side view
Loading...
Lib/distutils/ccompiler.py Diff Switch to side-by-side view
Loading...
Lib/distutils/command/build_ext.py Diff Switch to side-by-side view
Loading...
Lib/distutils/command/config.py Diff Switch to side-by-side view
Loading...
Lib/distutils/cygwinccompiler.py Diff Switch to side-by-side view
Loading...
Lib/distutils/emxccompiler.py Diff Switch to side-by-side view
Loading...
Lib/distutils/extension.py Diff Switch to side-by-side view
Loading...
Lib/distutils/msvccompiler.py Diff Switch to side-by-side view
Loading...
Lib/distutils/mwerkscompiler.py Diff Switch to side-by-side view
Loading...
Lib/distutils/sysconfig.py Diff Switch to side-by-side view
Loading...
Lib/distutils/unixccompiler.py Diff Switch to side-by-side view
Loading...

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks