[Patch #441691] preprocess() method for Borland C compiler.

I have no way of testing this.
This commit is contained in:
Andrew M. Kuchling 2001-08-16 20:17:41 +00:00
parent 4d2dded044
commit db7aed5219
1 changed files with 35 additions and 1 deletions

View File

@ -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()