File 0001-Manual-enum-generation-to-workaround-cross-build-not.patch of Package mingw64-libgexiv2

From 4eb5d18374bb7418a055217bd2cb501d35b0e4a3 Mon Sep 17 00:00:00 2001
From: Rob Norris <rw_norris@hotmail.com>
Date: Sun, 5 Nov 2023 13:57:14 +0000
Subject: [PATCH] Manual enum generation to workaround cross build not finding
 glib-mkenums


diff --git gexiv2/gexiv2-enums.cpp gexiv2/gexiv2-enums.cpp
new file mode 100644
index 0000000..a91c649
--- /dev/null
+++ gexiv2/gexiv2-enums.cpp
@@ -0,0 +1,129 @@
+
+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
+
+#include "gexiv2-enums.h"
+/* enumerations from "gexiv2-log.h" */
+#include "../../gexiv2/gexiv2-log.h"
+GType
+gexiv2_gexiv2_log_level_get_type (void)
+{
+    static GType type = 0;
+
+
+    if (!type)
+    {
+        static const GEnumValue _gexiv2_gexiv2_log_level_values[] = {
+            { GEXIV2_LOG_LEVEL_DEBUG, "GEXIV2_LOG_LEVEL_DEBUG", "debug" },
+            { GEXIV2_LOG_LEVEL_INFO, "GEXIV2_LOG_LEVEL_INFO", "info" },
+            { GEXIV2_LOG_LEVEL_WARN, "GEXIV2_LOG_LEVEL_WARN", "warn" },
+            { GEXIV2_LOG_LEVEL_ERROR, "GEXIV2_LOG_LEVEL_ERROR", "error" },
+            { GEXIV2_LOG_LEVEL_MUTE, "GEXIV2_LOG_LEVEL_MUTE", "mute" },
+            { 0, NULL, NULL }
+        };
+
+        type = g_enum_register_static ("GExiv2LogLevel", _gexiv2_gexiv2_log_level_values);
+    }
+
+
+  return type;
+}
+/* enumerations from "gexiv2-metadata.h" */
+#include "../../gexiv2/gexiv2-metadata.h"
+GType
+gexiv2_gexiv2_orientation_get_type (void)
+{
+    static GType type = 0;
+
+
+    if (!type)
+    {
+        static const GEnumValue _gexiv2_gexiv2_orientation_values[] = {
+            { GEXIV2_ORIENTATION_UNSPECIFIED, "GEXIV2_ORIENTATION_UNSPECIFIED", "unspecified" },
+            { GEXIV2_ORIENTATION_NORMAL, "GEXIV2_ORIENTATION_NORMAL", "normal" },
+            { GEXIV2_ORIENTATION_HFLIP, "GEXIV2_ORIENTATION_HFLIP", "hflip" },
+            { GEXIV2_ORIENTATION_ROT_180, "GEXIV2_ORIENTATION_ROT_180", "rot-180" },
+            { GEXIV2_ORIENTATION_VFLIP, "GEXIV2_ORIENTATION_VFLIP", "vflip" },
+            { GEXIV2_ORIENTATION_ROT_90_HFLIP, "GEXIV2_ORIENTATION_ROT_90_HFLIP", "rot-90-hflip" },
+            { GEXIV2_ORIENTATION_ROT_90, "GEXIV2_ORIENTATION_ROT_90", "rot-90" },
+            { GEXIV2_ORIENTATION_ROT_90_VFLIP, "GEXIV2_ORIENTATION_ROT_90_VFLIP", "rot-90-vflip" },
+            { GEXIV2_ORIENTATION_ROT_270, "GEXIV2_ORIENTATION_ROT_270", "rot-270" },
+            { 0, NULL, NULL }
+        };
+
+        type = g_enum_register_static ("GExiv2Orientation", _gexiv2_gexiv2_orientation_values);
+    }
+
+
+  return type;
+}
+GType
+gexiv2_gexiv2_structure_type_get_type (void)
+{
+    static GType type = 0;
+
+
+    if (!type)
+    {
+        static const GEnumValue _gexiv2_gexiv2_structure_type_values[] = {
+            { GEXIV2_STRUCTURE_XA_NONE, "GEXIV2_STRUCTURE_XA_NONE", "none" },
+            { GEXIV2_STRUCTURE_XA_ALT, "GEXIV2_STRUCTURE_XA_ALT", "alt" },
+            { GEXIV2_STRUCTURE_XA_BAG, "GEXIV2_STRUCTURE_XA_BAG", "bag" },
+            { GEXIV2_STRUCTURE_XA_SEQ, "GEXIV2_STRUCTURE_XA_SEQ", "seq" },
+            { GEXIV2_STRUCTURE_XA_LANG, "GEXIV2_STRUCTURE_XA_LANG", "lang" },
+            { 0, NULL, NULL }
+        };
+
+        type = g_enum_register_static ("GExiv2StructureType", _gexiv2_gexiv2_structure_type_values);
+    }
+
+
+  return type;
+}
+GType
+gexiv2_gexiv2_xmp_format_flags_get_type (void)
+{
+    static GType type = 0;
+
+
+    if (!type)
+    {
+        static const GFlagsValue _gexiv2_gexiv2_xmp_format_flags_values[] = {
+            { GEXIV2_OMIT_PACKET_WRAPPER, "GEXIV2_OMIT_PACKET_WRAPPER", "omit-packet-wrapper" },
+            { GEXIV2_READ_ONLY_PACKET, "GEXIV2_READ_ONLY_PACKET", "read-only-packet" },
+            { GEXIV2_USE_COMPACT_FORMAT, "GEXIV2_USE_COMPACT_FORMAT", "use-compact-format" },
+            { GEXIV2_INCLUDE_THUMBNAIL_PAD, "GEXIV2_INCLUDE_THUMBNAIL_PAD", "include-thumbnail-pad" },
+            { GEXIV2_EXACT_PACKET_LENGTH, "GEXIV2_EXACT_PACKET_LENGTH", "exact-packet-length" },
+            { GEXIV2_WRITE_ALIAS_COMMENTS, "GEXIV2_WRITE_ALIAS_COMMENTS", "write-alias-comments" },
+            { GEXIV2_OMIT_ALL_FORMATTING, "GEXIV2_OMIT_ALL_FORMATTING", "omit-all-formatting" },
+            { 0, NULL, NULL }
+        };
+
+        type = g_flags_register_static ("GExiv2XmpFormatFlags", _gexiv2_gexiv2_xmp_format_flags_values);
+    }
+
+
+  return type;
+}
+GType
+gexiv2_gexiv2_byte_order_get_type (void)
+{
+    static GType type = 0;
+
+
+    if (!type)
+    {
+        static const GEnumValue _gexiv2_gexiv2_byte_order_values[] = {
+            { GEXIV2_BYTE_ORDER_LITTLE, "GEXIV2_BYTE_ORDER_LITTLE", "little" },
+            { GEXIV2_BYTE_ORDER_BIG, "GEXIV2_BYTE_ORDER_BIG", "big" },
+            { 0, NULL, NULL }
+        };
+
+        type = g_enum_register_static ("GExiv2ByteOrder", _gexiv2_gexiv2_byte_order_values);
+    }
+
+
+  return type;
+}
+
+/* Generated data ends here */
+
diff --git gexiv2/gexiv2-enums.h gexiv2/gexiv2-enums.h
new file mode 100644
index 0000000..26f7e51
--- /dev/null
+++ gexiv2/gexiv2-enums.h
@@ -0,0 +1,27 @@
+
+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
+
+#ifndef GEXIV2_ENUMS_H
+#define GEXIV2_ENUMS_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+/* enumerations from gexiv2-log.h */
+GType gexiv2_gexiv2_log_level_get_type (void);
+#define GEXIV2_TYPE_GEXIV2_LOG_LEVEL (gexiv2_gexiv2_log_level_get_type())
+/* enumerations from gexiv2-metadata.h */
+GType gexiv2_gexiv2_orientation_get_type (void);
+#define GEXIV2_TYPE_GEXIV2_ORIENTATION (gexiv2_gexiv2_orientation_get_type())
+GType gexiv2_gexiv2_structure_type_get_type (void);
+#define GEXIV2_TYPE_GEXIV2_STRUCTURE_TYPE (gexiv2_gexiv2_structure_type_get_type())
+GType gexiv2_gexiv2_xmp_format_flags_get_type (void);
+#define GEXIV2_TYPE_GEXIV2_XMP_FORMAT_FLAGS (gexiv2_gexiv2_xmp_format_flags_get_type())
+GType gexiv2_gexiv2_byte_order_get_type (void);
+#define GEXIV2_TYPE_GEXIV2_BYTE_ORDER (gexiv2_gexiv2_byte_order_get_type())
+G_END_DECLS
+
+#endif /* GEXIV2_ENUMS_H */
+
+/* Generated data ends here */
+
diff --git gexiv2/meson.build gexiv2/meson.build
index ad383ee..776ec2d 100644
--- gexiv2/meson.build
+++ gexiv2/meson.build
@@ -33,14 +33,17 @@ gexiv2_headers = gexiv2_enum_headers + ['gexiv2.h',
                   'gexiv2-preview-image.h',
                   'gexiv2-startup.h']
 
-enum_sources = gnome.mkenums('gexiv2-enums',
-                             sources : gexiv2_enum_headers,
-                             h_template : 'gexiv2-enums.h.template',
-                             c_template : 'gexiv2-enums.cpp.template',
-                             identifier_prefix : 'gexiv2',
-                             symbol_prefix : 'GExiv2',
-                             install_header : true,
-                             install_dir : gexiv2_include_dir)
+#enum_sources = gnome.mkenums('gexiv2-enums',
+#                             sources : gexiv2_enum_headers,
+#                             h_template : 'gexiv2-enums.h.template',
+#                             c_template : 'gexiv2-enums.cpp.template',
+#                             identifier_prefix : 'gexiv2',
+#                             symbol_prefix : 'GExiv2',
+#                             install_header : true,
+#                             install_dir : gexiv2_include_dir)
+# Use maunally pre-generated enum files to workaround glib-mkenum not found under cross build
+enum_sources = ['gexiv2-enums.h',
+                'gexiv2-enums.cpp']
 
 install_headers(gexiv2_headers, subdir : 'gexiv2')
 
-- 
2.42.0

openSUSE Build Service is sponsored by