mirror of
https://github.com/python/cpython.git
synced 2025-09-11 11:17:16 +00:00
[Patch #441691] preprocess() method for Borland C compiler.
I have no way of testing this.
This commit is contained in:
parent
4d2dded044
commit
db7aed5219
1 changed files with 35 additions and 1 deletions
|
@ -21,7 +21,7 @@ from distutils.errors import \
|
||||||
from distutils.ccompiler import \
|
from distutils.ccompiler import \
|
||||||
CCompiler, gen_preprocess_options, gen_lib_options
|
CCompiler, gen_preprocess_options, gen_lib_options
|
||||||
from distutils.file_util import write_file
|
from distutils.file_util import write_file
|
||||||
|
from distutils.dep_util import newer
|
||||||
|
|
||||||
class BCPPCompiler(CCompiler) :
|
class BCPPCompiler(CCompiler) :
|
||||||
"""Concrete class that implements an interface to the Borland C/C++
|
"""Concrete class that implements an interface to the Borland C/C++
|
||||||
|
@ -373,3 +373,37 @@ class BCPPCompiler(CCompiler) :
|
||||||
return obj_names
|
return obj_names
|
||||||
|
|
||||||
# object_filenames ()
|
# 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()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue