]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
docs/HACKING: add note about template engines 19630/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 17 May 2021 19:32:49 +0000 (21:32 +0200)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 19 May 2021 01:25:26 +0000 (10:25 +0900)
docs/HACKING.md

index 6306eee13994c831222cba5403ca6cc7979186e3..4374ba097d69fdc967f358d05438e667d3dbdbce 100644 (file)
@@ -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