Abstract base class for tools used to link dynamic Python modules.
Return a string describing the exact version of the tools (compilers etc.) involved in this toolchain.
Implemented by subclasses.
Add include_dirs, library_dirs and libraries describing the library named feature to the toolchain.
Future toolchain invocations will include compiler flags referencing the respective resources.
Duplicate directories are ignored, as will be attempts to add the same feature twice.
Create the extension file ext_file from source_files by invoking the toolchain. Raise CompileError in case of error.
If debug is True, print the commands executed.
Implemented by subclasses.
Guess and return a Toolchain instance.
Raise ToolchainGuessError if no toolchain could be found.
Using toolchain, build the extension file named ext_file from the source code in source_string, which is saved to a temporary file named source_name. Raise CompileError in case of error.
If debug is True, show commands involved in the build.
Return a reference to the extension module name, which can be built from the source code in source_string if necessary. Raise CompileError in case of error.
Compiled code is cached in cache_dir and available immediately if it has been compiled at some point in the past. Compiler and Python API versions as well as versions of include files are taken into account when examining the cache. If cache_dir is None, a default location is assumed. If it is False, no caching is performed. Proper locking is performed on the cache directory. Simultaneous use of the cache by multiple processes works as expected, but may lead to delays because of locking.
The code in source_string will be saved to a temporary file named source_name if it needs to be compiled.
If debug is True, commands involved in the build are printed.
If wait_on_error is True, the full path name of the temporary in which a CompileError occurred is shown and the user is expected to press a key before the temporary file gets deleted. If wait_on_error is None, it is taken to be the same as debug.
If debug_recompile, messages are printed indicating whether a recompilation is taking place.
Convenience interface for using CodePy with Boost.Python.