diff options
-rw-r--r-- | docs/markdown/snippets/preprocess.md | 14 | ||||
-rw-r--r-- | docs/yaml/objects/compiler.yaml | 22 |
2 files changed, 36 insertions, 0 deletions
diff --git a/docs/markdown/snippets/preprocess.md b/docs/markdown/snippets/preprocess.md new file mode 100644 index 0000000..7e6dd0a --- /dev/null +++ b/docs/markdown/snippets/preprocess.md @@ -0,0 +1,14 @@ +## New method to preprocess source files + +Compiler object has a new `preprocess()` method. It is supported by all C/C++ +compilers. It preprocess sources without compiling them. + +The preprocessor will receive the same arguments (include directories, defines, +etc) as with normal compilation. That includes for example args added with +`add_project_arguments()`, or on the command line with `-Dc_args=-DFOO`. + +```meson +cc = meson.get_compiler('c') +pp_files = cc.preprocess('foo.c', 'bar.c', output: '@PLAINNAME@') +exe = executable('app', pp_files) +``` diff --git a/docs/yaml/objects/compiler.yaml b/docs/yaml/objects/compiler.yaml index 6f49ec5..f6743ad 100644 --- a/docs/yaml/objects/compiler.yaml +++ b/docs/yaml/objects/compiler.yaml @@ -586,3 +586,25 @@ methods: gcc or msvc, but use the same argument syntax as one of those two compilers such as clang or icc, especially when they use different syntax on different operating systems. + +- name: preprocess + returns: list[custom_idx] + since: 0.64.0 + description: | + Preprocess a list of source files but do not compile them. The preprocessor + will receive the same arguments (include directories, defines, etc) as with + normal compilation. That includes for example args added with + `add_project_arguments()`, or on the command line with `-Dc_args=-DFOO`. + varargs_inherit: _build_target_base + kwargs: + output: + type: str + description: | + Template for name of preprocessed files: `@PLAINNAME@` is replaced by + the source filename and `@BASENAME@` is replaced by the source filename + without its extension. + compile_args: + type: list[str] + description: | + Extra flags to pass to the preprocessor + |