diff options
Diffstat (limited to 'Tools/c-analyzer/c_parser/preprocessor/common.py')
-rw-r--r-- | Tools/c-analyzer/c_parser/preprocessor/common.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/Tools/c-analyzer/c_parser/preprocessor/common.py b/Tools/c-analyzer/c_parser/preprocessor/common.py index 63681025c63..4291a066337 100644 --- a/Tools/c-analyzer/c_parser/preprocessor/common.py +++ b/Tools/c-analyzer/c_parser/preprocessor/common.py @@ -44,7 +44,7 @@ def run_cmd(argv, *, return proc.stdout -def preprocess(tool, filename, **kwargs): +def preprocess(tool, filename, cwd=None, **kwargs): argv = _build_argv(tool, filename, **kwargs) logger.debug(' '.join(shlex.quote(v) for v in argv)) @@ -59,19 +59,24 @@ def preprocess(tool, filename, **kwargs): # distutil compiler object's preprocess() method, since that # one writes to stdout/stderr and it's simpler to do it directly # through subprocess. - return run_cmd(argv) + return run_cmd(argv, cwd=cwd) def _build_argv( tool, filename, incldirs=None, + includes=None, macros=None, preargs=None, postargs=None, executable=None, compiler=None, ): + if includes: + includes = tuple(f'-include{i}' for i in includes) + postargs = (includes + postargs) if postargs else includes + compiler = distutils.ccompiler.new_compiler( compiler=compiler or tool, ) |