SDL_gpu_shadercross: cmake: install runtime dependencies of spirv-cross-c-chared

From 96890386da0485d4289296f05e813c0d7faf13bd Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Mon, 11 Nov 2024 20:25:55 +0100
Subject: [PATCH] cmake: install runtime dependencies of spirv-cross-c-chared

---
 CMakeLists.txt | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8c5e51e..7ae54ee 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -382,6 +382,21 @@ if(SDLGPUSHADERCROSS_INSTALL_RUNTIME)
 		install(IMPORTED_RUNTIME_ARTIFACTS DirectXShaderCompiler::dxcompiler DirectXShaderCompiler::dxil RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
 		if(SDLGPUSHADERCROSS_SPIRVCROSS_SHARED)
 			install(IMPORTED_RUNTIME_ARTIFACTS spirv-cross-c-shared RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+			if(WIN32)
+				install(CODE "
+					set(CMAKE_GET_RUNTIME_DEPENDENCIES_PLATFORM \"windows+pe\")
+					set(CMAKE_GET_RUNTIME_DEPENDENCIES_TOOL \"$<IF:$<BOOL:${MSVC}>,dumpbin,objdump>\")
+					set(CMAKE_GET_RUNTIME_DEPENDENCIES_COMMAND \"${CMAKE_OBJDUMP}\")
+					file(GET_RUNTIME_DEPENDENCIES
+						RESOLVED_DEPENDENCIES_VAR resolved
+						UNRESOLVED_DEPENDENCIES_VAR unresolved
+						DIRECTORIES  \"$<TARGET_FILE_DIR:spirv-cross-c-shared>\" \"${CMAKE_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR}\"
+						LIBRARIES \"$<TARGET_FILE:spirv-cross-c-shared>\"
+						POST_EXCLUDE_REGEXES \".*[sS][yY][sS][tT][eE][mM]32.*\" \".*[aA][pP][iI]-[mM][sS].*\" \".*[aA][pP][iI]-[eE][xX][tT].*\"
+					)
+					file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/bin\" TYPE SHARED_LIBRARY FILES \${resolved})
+				")
+			endif()
 		endif()
 	endif()