meson: adjust whitespace handling in jinja2 rendering
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 20 Feb 2023 14:07:44 +0000 (15:07 +0100)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 20 Feb 2023 21:41:19 +0000 (06:41 +0900)
commita324a8958b06b577f1a82a3a3d5f696add2b1fb4
tree58bcbafb348d08cdbfae69654cf94059e6d6c8ed
parente814f8b24661ef89cd84fb4c3f64f5be2d53061e
meson: adjust whitespace handling in jinja2 rendering

In 6abe882bae1bb12827ef395c60f21ab8bb1bc61b the renderer was made to
unconditionally append a newline to output. This works, but is ugly. A nicer
solution is to tell jinja2 to not strip the newline in the first place, via
keep_trailing_newline=True. It seems that the result is unchanged because all
our source files have exactly one trailing newline.

Also, enable lstrip_blocks=True. This would cause whitespace on the line before
an {%if block to be automatically stripped. It seems reasonable to enable that
if trim_blocks=True.

Overall, no change is expected, though I didn't test combinations of
configurations, so there might be a change in some cases. But now the rules of
rendering are more logical, e.g. we should be able to indent nested conditional
statements without getting unexpected whitespace in the output.
tools/meson-render-jinja2.py