mirror of
https://github.com/python/cpython.git
synced 2026-01-06 07:22:09 +00:00
[#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(). |
||
|---|---|---|
| .. | ||
| command | ||
| __init__.py | ||
| archive_util.py | ||
| bcppcompiler.py | ||
| ccompiler.py | ||
| cmd.py | ||
| core.py | ||
| cygwinccompiler.py | ||
| debug.py | ||
| dep_util.py | ||
| dir_util.py | ||
| dist.py | ||
| emxccompiler.py | ||
| errors.py | ||
| extension.py | ||
| fancy_getopt.py | ||
| file_util.py | ||
| filelist.py | ||
| log.py | ||
| msvccompiler.py | ||
| mwerkscompiler.py | ||
| README | ||
| spawn.py | ||
| sysconfig.py | ||
| text_file.py | ||
| unixccompiler.py | ||
| util.py | ||
| version.py | ||
This directory contains only a subset of the Distutils, specifically the
Python modules in the 'distutils' and 'distutils.command' packages.
Technically, this is all you need to distribute and install Python modules
using the Distutils. Most people will want some documentation and other
help, though. Currently, everything can be found at the Distutils web page:
http://www.python.org/sigs/distutils-sig/
From there you can access the latest documentation, or download a standalone
Distutils release that includes all the code in this directory, plus
documentation, test scripts, examples, etc.
The Distutils documentation isn't yet part of the standard Python
documentation set, but will be soon.
Greg Ward (gward@python.net)
$Id$