File 14001.patch of Package meson

From 8679ea9525672d74030303be062d9545c92b5840 Mon Sep 17 00:00:00 2001
From: solomoncyj <solomoncyj@gmail.com>
Date: Sun, 15 Dec 2024 21:00:42 +0800
Subject: [PATCH 1/2] feat: set up dependencies generation for fedora

---
 data/macros.meson        |  5 +++++
 data/mesongenbuildreq.py | 16 ++++++++++++++++
 2 files changed, 21 insertions(+)
 create mode 100644 data/mesongenbuildreq.py

Index: meson-1.7.0/data/macros.meson
===================================================================
--- meson-1.7.0.orig/data/macros.meson
+++ meson-1.7.0/data/macros.meson
@@ -47,6 +47,11 @@
         %{?qemu_user_space_build: -t 10} \
         %{nil}}
 
+%meson_buildrequires \
+    %{shrink: python3 %{_rpmconfigdir}/mesongenbuildreq %{__meson} \
+        %{nil}}
+
+
 # Declarative buildsystem, requires RPM 4.20+ to work
 # https://rpm-software-management.github.io/rpm/manual/buildsystem.html
 %buildsystem_meson_conf() %meson %*
Index: meson-1.7.0/data/mesongenbuildreq.py
===================================================================
--- /dev/null
+++ meson-1.7.0/data/mesongenbuildreq.py
@@ -0,0 +1,19 @@
+import subprocess
+import json
+import sys
+deps_json = json.loads(subprocess.run([sys.argv[1], "introspect", "--dependencies", "meson.build"], capture_output=True).stdout)
+unsorted_deps = dict(zip([x['name'] for x in deps_json],[x['version'] for x in deps_json]))
+unsorted_deps.pop('', None)
+deps = {}
+for lib in list(unsorted_deps.keys()) :
+    deps[lib] = unsorted_deps[lib]
+for lib, versions in deps.items() :
+     # Prepare version constraint
+     version_str = ' ' + ' '.join(versions) if versions else ''
+     line = []
+     for prefix in ["cmake", "pkgconfig", "qmake"] :
+         buildreq = (f"{prefix}({lib}){version_str}")
+         if buildreq.split('=')[-1] == '' and '=' in buildreq :
+             buildreq = buildreq.split('=')[0]
+         line.append(buildreq)
+     print(f"({' or '.join(line)})")
openSUSE Build Service is sponsored by