aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-10-13 14:39:47 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2022-10-23 12:21:46 +0200
commitd53486bf9c7d860141371c90d0dc1c923a350fed (patch)
tree4f6a6f497058580f3366542d96deedc61890b471
parent1d56df94097678fbdf05fa9ca04e0b90ff65cf2c (diff)
downloadmeson-d53486bf9c7d860141371c90d0dc1c923a350fed.zip
meson-d53486bf9c7d860141371c90d0dc1c923a350fed.tar.gz
meson-d53486bf9c7d860141371c90d0dc1c923a350fed.tar.bz2
Add doc and release notes for cc.preprocess()
-rw-r--r--docs/markdown/snippets/preprocess.md14
-rw-r--r--docs/yaml/objects/compiler.yaml22
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
+