From c64b49807d7c91c2de179480792f70326f3dcc49 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sat, 28 Jun 2025 01:22:32 +0300
Subject: [PATCH 76/76] Meson: Generate rulesets_upgrade.sh

See RM #1543

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 meson.build                  | 14 ++++++++++----
 tests/Makefile.am            |  1 +
 tests/generate_rs_upgrade.sh | 30 ++++++++++++++++++++++++++++++
 3 files changed, 41 insertions(+), 4 deletions(-)
 create mode 100644 tests/generate_rs_upgrade.sh

diff --git a/meson.build b/meson.build
index 3fc318c8bd..447e2ef86b 100644
--- a/meson.build
+++ b/meson.build
@@ -1278,10 +1278,16 @@ rs_not_broken = custom_target('rs_not_broken', output: 'rulesets_not_broken.sh',
                               depends: rsloads)
 
 rs_save = custom_target('rs_save', output: 'rulesets_save.sh',
-                              command: [sh_exe,
-                                        files('tests/generate_rs_save.sh'),
-                                        '@OUTPUT@'],
-                              depends: rsloads)
+                         command: [sh_exe,
+                                   files('tests/generate_rs_save.sh'),
+                                   '@OUTPUT@'],
+                         depends: rsloads)
+
+rs_upgrade = custom_target('rs_upgrade', output: 'rulesets_upgrade.sh',
+                           command: [sh_exe,
+                                     files('tests/generate_rs_upgrade.sh'),
+                                     '@OUTPUT@'],
+                           depends: rs_save)
 
 if host_system == 'windows'
   tinycthr_files = files('dependencies/tinycthread/fc_tinycthread.c')
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 69b4603dcb..de079fef04 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -13,6 +13,7 @@ EXTRA_DIST =	check_macros.sh			\
 		fcintl.sh			\
 		generate_rs_not_broken.sh	\
 		generate_rs_save.sh		\
+		generate_rs_upgrade.sh		\
 		header_guard.sh			\
 		rulesets_save.sh.in		\
 		rulesets_upgrade.sh.in		\
diff --git a/tests/generate_rs_upgrade.sh b/tests/generate_rs_upgrade.sh
new file mode 100644
index 0000000000..e22f70722d
--- /dev/null
+++ b/tests/generate_rs_upgrade.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+#/***********************************************************************
+# Freeciv - Copyright (C) 2017-2025
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2, or (at your option)
+#   any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#***********************************************************************/
+
+SRCDIR="$(cd $(dirname $0) ; pwd)"
+
+(
+  echo "# Generated by generate_rs_upgrade.sh."
+  echo
+  echo "# rulesets_upgrade.sh"
+  echo "# Exits with 0 when each ruleset specified in upgrade_ruleset_list.txt"
+  echo "# can be saved using ruleup."
+  echo "# Exits with 1 if not."
+  echo
+  echo "FREECIV_DATA_PATH=\"${SRCDIR}/rs_test_res/upgrade_rulesets:\${FREECIV_DATA_PATH}\" \\"
+  echo " ./rulesets_save.sh \$(cat \"${SRCDIR}/rs_test_res/upgrade_ruleset_list.txt\")"
+) > $1
+
+chmod +x "$1"
-- 
2.47.2

