Merge branch '2327-mkenums-version-macros' into 'master'
glib-mkenums: Parse and skip deprecation/availability annotations
Closes #2327
See merge request GNOME/glib!1984
diff --git a/gio/gioenums.h b/gio/gioenums.h
index 5e83e96..f2f66c8 100644
--- a/gio/gioenums.h
+++ b/gio/gioenums.h
@@ -1220,7 +1220,7 @@
G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<2),
G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION = (1<<3),
G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING = (1<<4),
- G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER = (1<<5)
+ G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<5)
} GDBusConnectionFlags;
/**
@@ -1383,7 +1383,7 @@
G_DBUS_SERVER_FLAGS_NONE = 0,
G_DBUS_SERVER_FLAGS_RUN_IN_THREAD = (1<<0),
G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<1),
- G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER = (1<<2)
+ G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2)
} GDBusServerFlags;
/**
diff --git a/glib/guri.h b/glib/guri.h
index b6a4fd0..bfe9399 100644
--- a/glib/guri.h
+++ b/glib/guri.h
@@ -87,7 +87,7 @@
G_URI_FLAGS_ENCODED_QUERY = 1 << 5,
G_URI_FLAGS_ENCODED_PATH = 1 << 6,
G_URI_FLAGS_ENCODED_FRAGMENT = 1 << 7,
- G_URI_FLAGS_SCHEME_NORMALIZE = 1 << 8,
+ G_URI_FLAGS_SCHEME_NORMALIZE GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = 1 << 8,
} GUriFlags;
GLIB_AVAILABLE_IN_2_66
diff --git a/gobject/glib-mkenums.in b/gobject/glib-mkenums.in
index 1998680..b996a73 100755
--- a/gobject/glib-mkenums.in
+++ b/gobject/glib-mkenums.in
@@ -219,6 +219,7 @@
m = re.match(r'''\s*
(\w+)\s* # name
+ (\s+[A-Z]+_(?:AVAILABLE|DEPRECATED)_ENUMERATOR_IN_[0-9_]+(?:_FOR\s*\(\s*\w+\s*\))?\s*)? # availability
(?:=( # value
\s*\w+\s*\(.*\)\s* # macro with multiple args
| # OR
@@ -231,12 +232,15 @@
if m:
groups = m.groups()
name = groups[0]
+ availability = None
value = None
options = None
if len(groups) > 1:
- value = groups[1]
+ availability = groups[1]
if len(groups) > 2:
- options = groups[2]
+ value = groups[2]
+ if len(groups) > 3:
+ options = groups[3]
if flags is None and value is not None and '<<' in value:
seenbitshift = 1
diff --git a/gobject/tests/mkenums.py b/gobject/tests/mkenums.py
index 876089d..a3273c5 100644
--- a/gobject/tests/mkenums.py
+++ b/gobject/tests/mkenums.py
@@ -650,6 +650,84 @@
"0",
)
+ def test_available_in(self):
+ """Test GLIB_AVAILABLE_ENUMERATOR_IN_2_68 handling
+ https://gitlab.gnome.org/GNOME/glib/-/issues/2327"""
+ h_contents = """
+ typedef enum {
+ G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2)
+ } GDBusServerFlags;
+ """
+ result = self.runMkenumsWithHeader(h_contents)
+ self.assertEqual("", result.err)
+ self.assertSingleEnum(
+ result,
+ "GDBusServerFlags",
+ "g_dbus_server_flags",
+ "G_DBUS_SERVER_FLAGS",
+ "DBUS_SERVER_FLAGS",
+ "G",
+ "",
+ "flags",
+ "Flags",
+ "FLAGS",
+ "G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER",
+ "user",
+ "4",
+ )
+
+ def test_deprecated_in(self):
+ """Test GLIB_DEPRECATED_ENUMERATOR_IN_2_68 handling
+ https://gitlab.gnome.org/GNOME/glib/-/issues/2327"""
+ h_contents = """
+ typedef enum {
+ G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68 = (1<<2)
+ } GDBusServerFlags;
+ """
+ result = self.runMkenumsWithHeader(h_contents)
+ self.assertEqual("", result.err)
+ self.assertSingleEnum(
+ result,
+ "GDBusServerFlags",
+ "g_dbus_server_flags",
+ "G_DBUS_SERVER_FLAGS",
+ "DBUS_SERVER_FLAGS",
+ "G",
+ "",
+ "flags",
+ "Flags",
+ "FLAGS",
+ "G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER",
+ "user",
+ "4",
+ )
+
+ def test_deprecated_in_for(self):
+ """Test GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR() handling
+ https://gitlab.gnome.org/GNOME/glib/-/issues/2327"""
+ h_contents = """
+ typedef enum {
+ G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR(G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER2) = (1<<2)
+ } GDBusServerFlags;
+ """
+ result = self.runMkenumsWithHeader(h_contents)
+ self.assertEqual("", result.err)
+ self.assertSingleEnum(
+ result,
+ "GDBusServerFlags",
+ "g_dbus_server_flags",
+ "G_DBUS_SERVER_FLAGS",
+ "DBUS_SERVER_FLAGS",
+ "G",
+ "",
+ "flags",
+ "Flags",
+ "FLAGS",
+ "G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER",
+ "user",
+ "4",
+ )
+
class TestRspMkenums(TestMkenums):
"""Run all tests again in @rspfile mode"""