From 89f52a780e54b2eb0905a6e613f6d4afcb22256b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 17 May 2021 21:32:49 +0200 Subject: [PATCH] docs/HACKING: add note about template engines --- docs/HACKING.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/HACKING.md b/docs/HACKING.md index 6306eee1399..4374ba097d6 100644 --- a/docs/HACKING.md +++ b/docs/HACKING.md @@ -106,13 +106,31 @@ And after that, head over to your repo on GitHub and click "Compare & pull reque Happy hacking! +## Templating engines in .in files + +Some source files are generated during build. We use two templating engines: +* meson's `configure_file()` directive uses syntax with `@VARIABLE@`. + + See https://mesonbuild.com/Reference-manual.html#configure_file for + details. + +* most files are rendered using jinja2, with `{{VARIABLE}}` and `{% if … %}`, + `{% elif … %}`, `{% else … %}`, `{% endif … %}` blocks. `{# … #}` is a + jinja2 comment, i.e. that block will not be visible in the rendered + output. `{% raw %} … {% endraw %}` creates a block where the jinja2 syntax + is not interpreted. + + See https://jinja2docs.readthedocs.io/en/stable/templates.html#synopsis + for details. + +Please note that files for both template engines use the `.in` extension. ## Developer and release modes In the default meson configuration (`-Dmode=developer`), certain checks are enabled that are suitable when hacking on systemd (such as internal -documentation consistency checks). Those are not useful when compiling for code -for distribution and can be disabled by setting `-Dmode=release`. +documentation consistency checks). Those are not useful when compiling for +distribution and can be disabled by setting `-Dmode=release`. ## Fuzzers -- 2.47.3