From: Jeremy Hylton Date: Tue, 18 Jun 2002 18:42:41 +0000 (+0000) Subject: Add a default implementation of compile() to the base class. X-Git-Tag: v2.3c1~5274 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6e08d22b1a7dabb5456460f152cc5e102cf44ea5;p=python 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. --- diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py index 50246b8961..f1a50cbddc 100644 --- a/Lib/distutils/ccompiler.py +++ b/Lib/distutils/ccompiler.py @@ -644,8 +644,27 @@ class CCompiler: 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,