From db7aed5219b5c96db0eeb33262f986faa515d6bc Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Thu, 16 Aug 2001 20:17:41 +0000 Subject: [PATCH] [Patch #441691] preprocess() method for Borland C compiler. I have no way of testing this. --- Lib/distutils/bcppcompiler.py | 36 ++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/Lib/distutils/bcppcompiler.py b/Lib/distutils/bcppcompiler.py index 2742b5fe33..5c0fae8b71 100644 --- a/Lib/distutils/bcppcompiler.py +++ b/Lib/distutils/bcppcompiler.py @@ -21,7 +21,7 @@ from distutils.errors import \ from distutils.ccompiler import \ CCompiler, gen_preprocess_options, gen_lib_options from distutils.file_util import write_file - +from distutils.dep_util import newer class BCPPCompiler(CCompiler) : """Concrete class that implements an interface to the Borland C/C++ @@ -373,3 +373,37 @@ class BCPPCompiler(CCompiler) : return obj_names # object_filenames () + + def preprocess (self, + source, + output_file=None, + macros=None, + include_dirs=None, + extra_preargs=None, + extra_postargs=None): + + (_, macros, include_dirs) = \ + self._fix_compile_args(None, macros, include_dirs) + pp_opts = gen_preprocess_options(macros, include_dirs) + pp_args = ['cpp32.exe'] + pp_opts + if output_file is not None: + pp_args.append('-o' + output_file) + if extra_preargs: + pp_args[:0] = extra_preargs + if extra_postargs: + pp_args.extend(extra_postargs) + pp_args.append(source) + + # We need to preprocess: either we're being forced to, or the + # source file is newer than the target (or the target doesn't + # exist). + if self.force or output_file is None or newer(source, output_file): + if output_file: + self.mkpath(os.path.dirname(output_file)) + try: + self.spawn(pp_args) + except DistutilsExecError, msg: + print msg + raise CompileError, msg + + # preprocess() -- 2.40.0