File sprirv-remap.patch of Package vkquake
From 85ddf2386f15944c26317a763d4044077fc8731f Mon Sep 17 00:00:00 2001
From: vsonnier <vsonnier@users.noreply.github.com>
Date: Sat, 27 Sep 2025 14:01:57 +0200
Subject: [PATCH] Fix #807 : Meson test existence of sprirv-remap to manage its
 suppression with glslang >= 16.0
---
 meson.build | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 114b1540..9dc6b0d7 100644
--- a/meson.build
+++ b/meson.build
@@ -48,14 +48,23 @@ shaders = [
 
 glslang = find_program('glslangValidator')
 spirv_opt = find_program('spirv-opt')
-spirv_remap = find_program('spirv-remap')
+spirv_remap_command = []
+spirv_opt_command  = []
+run_test_canonicalize_ids_spirv_opt = run_command(spirv_opt, '-h', check : false)
+has_canonicalize_ids_spirv_opt = (run_test_canonicalize_ids_spirv_opt.stdout().strip().contains('--canonicalize-ids'))
 bintoc = executable('bintoc', ['Shaders/bintoc.c'], native: true)
 if (build_machine.system() == 'darwin') or get_option('buildtype').startswith('debug')
     spirv_opt_command = [] # MoltenVK spirv-cross has a bug that breaks optimized shaders
-else
+elif has_canonicalize_ids_spirv_opt
+	message('Info: spirv-opt has --canonicalize-ids (glslang >= 16.0).')
+    spirv_opt_command = [spirv_opt, '-Os', '--canonicalize-ids', '--strip-debug', '@PLAINNAME@.spv', '-o', '@PLAINNAME@.spv', '&&']   
+else 
     spirv_opt_command = [spirv_opt, '-Os', '@PLAINNAME@.spv', '-o', '@PLAINNAME@.spv', '&&']
+	message('Info: spirv-opt has NOT --canonicalize-ids (glslang < 16.0) so use spirv-remap instead.')
+	spirv_remap = find_program('spirv-remap')
+	spirv_remap_command = [spirv_remap, '-s', '-o', '.', '-i', '@PLAINNAME@.spv', '&&']
 endif
-spirv_remap_command = get_option('buildtype').startswith('debug') ? [] : [spirv_remap, '-s', '-o', '.', '-i', '@PLAINNAME@.spv', '&&']
+
 bintoc_command = [bintoc, '@PLAINNAME@.spv', '@PLAINNAME@_spv', '@OUTPUT@']
 
 shaders_c = []