mirror of
https://github.com/python/cpython
synced 2024-10-05 11:14:57 +00:00
Add a default implementation of compile() to the base class.
The default implementation calls _compile() to compile individual files. This method must be implemented by the subclass. This change factors out most of the remaining common code in all the compilers except mwerks.
This commit is contained in:
parent
074712112b
commit
6e08d22b1a
|
@ -644,8 +644,27 @@ def compile(self, sources, output_dir=None, macros=None,
|
|||
|
||||
Raises CompileError on failure.
|
||||
"""
|
||||
pass
|
||||
|
||||
# A concrete compiler class can either override this method
|
||||
# entirely or implement _compile().
|
||||
|
||||
macros, objects, extra_postargs, pp_opts, build = \
|
||||
self._setup_compile(output_dir, macros, include_dirs, sources,
|
||||
depends, extra_postargs)
|
||||
cc_args = self._get_cc_args(pp_opts, debug, extra_preargs)
|
||||
|
||||
for obj, (src, ext) in build.items():
|
||||
self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
|
||||
|
||||
# Return *all* object filenames, not just the ones we just built.
|
||||
return objects
|
||||
|
||||
def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
|
||||
"""Compile 'src' to product 'obj'."""
|
||||
|
||||
# A concrete compiler class that does not override compile()
|
||||
# should implement _compile().
|
||||
pass
|
||||
|
||||
def create_static_lib (self,
|
||||
objects,
|
||||
|
|
Loading…
Reference in a new issue