summaryrefslogtreecommitdiff
path: root/mesonbuild
diff options
context:
space:
mode:
authorMatthijs Velsink <mvelsink@gnome.org>2024-04-07 22:55:40 +0200
committerDylan Baker <dylan@pnwbakers.com>2024-04-08 12:47:03 -0700
commit7ebbce207247e367f6d77ed98306fb10e97ba439 (patch)
tree58e0061081137287ab1b87d5e4f1126e1058f382 /mesonbuild
parent2b37101998c82b8c4d3985d9b0695be38ec4cf76 (diff)
downloadmeson-7ebbce207247e367f6d77ed98306fb10e97ba439.tar.gz
gnome: Fix indentation of mkenums_simple generated code
Commit 83facb39593fbfa4d9cd68e86f5f56f86f1fe1eb switched to using `textwrap.dedent` for the code templates for `gnome.mkenums_simple`. That changed indentation, however, making the generated code harder to understand. We improve this by properly indenting the multiline strings before dedenting them. For optional parameters `decl_decorator` and `header_prefix`, we add a newline if they are set to keep separation between generated code blocks.
Diffstat (limited to 'mesonbuild')
-rw-r--r--mesonbuild/modules/gnome.py36
1 files changed, 22 insertions, 14 deletions
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 9d6c13209..4c015074e 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -1874,20 +1874,21 @@ class GnomeModule(ExtensionModule):
GType
{func_prefix}@enum_name@_get_type (void)
{{
- static gsize gtype_id = 0;
- static const G@Type@Value values[] = {{'''))
+ static gsize gtype_id = 0;
+ static const G@Type@Value values[] = {{'''))
- c_cmd.extend(['--vprod', ' { C_@TYPE@(@VALUENAME@), "@VALUENAME@", "@valuenick@" },'])
+ c_cmd.extend(['--vprod', ' { C_@TYPE@ (@VALUENAME@), "@VALUENAME@", "@valuenick@" },'])
c_cmd.append('--vtail')
c_cmd.append(textwrap.dedent(
- ''' { 0, NULL, NULL }
- };
- if (g_once_init_enter (&gtype_id)) {
- GType new_type = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
- g_once_init_leave (&gtype_id, new_type);
- }
- return (GType) gtype_id;
+ '''\
+ { 0, NULL, NULL }
+ };
+ if (g_once_init_enter (&gtype_id)) {
+ GType new_type = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+ g_once_init_leave (&gtype_id, new_type);
+ }
+ return (GType) gtype_id;
}'''))
c_cmd.append('@INPUT@')
@@ -1896,13 +1897,16 @@ class GnomeModule(ExtensionModule):
# .h file generation
h_cmd = cmd.copy()
+ if header_prefix and not header_prefix.endswith('\n'):
+ header_prefix += '\n' # Extra trailing newline for style
+
h_cmd.append('--fhead')
h_cmd.append(textwrap.dedent(
- f'''#pragma once
+ f'''\
+ #pragma once
#include <glib-object.h>
{header_prefix}
-
G_BEGIN_DECLS
'''))
@@ -1912,9 +1916,13 @@ class GnomeModule(ExtensionModule):
/* enumerations from "@basename@" */
'''))
+ extra_newline = ''
+ if decl_decorator:
+ extra_newline = '\n' # Extra leading newline for style
+
h_cmd.append('--vhead')
- h_cmd.append(textwrap.dedent(
- f'''
+ h_cmd.append(extra_newline + textwrap.dedent(
+ f'''\
{decl_decorator}
GType {func_prefix}@enum_name@_get_type (void);
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ ({func_prefix}@enum_name@_get_type())'''))