From 236d426cfe526b32d75601f4f6e718ca188b5c19 Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Sat, 13 Jan 2024 17:58:19 +0100
Subject: [PATCH] Fix json-c dependency in shady

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 .gitmodules                                 | 3 +++
 modules/shader_compiler/CMakeLists.txt      | 3 ++-
 modules/shader_compiler/config/JSON-C.cmake | 9 +++++++++
 modules/shader_compiler/config/Shady.cmake  | 1 +
 modules/shader_compiler/lib/json-c          | 1 +
 modules/shader_compiler/lib/shady           | 2 +-
 6 files changed, 17 insertions(+), 2 deletions(-)
 create mode 100644 modules/shader_compiler/config/JSON-C.cmake
 create mode 160000 modules/shader_compiler/lib/json-c

diff --git a/.gitmodules b/.gitmodules
index 10aee941..ac4194a7 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -79,3 +79,6 @@
 [submodule "modules/shader_compiler/lib/murmur3"]
 	path = modules/shader_compiler/lib/murmur3
 	url = https://github.com/PeterScott/murmur3.git
+[submodule "modules/shader_compiler/lib/json-c"]
+	path = modules/shader_compiler/lib/json-c
+	url = https://github.com/json-c/json-c.git
diff --git a/modules/shader_compiler/CMakeLists.txt b/modules/shader_compiler/CMakeLists.txt
index 960eb65c..a00a896d 100644
--- a/modules/shader_compiler/CMakeLists.txt
+++ b/modules/shader_compiler/CMakeLists.txt
@@ -42,7 +42,8 @@ set_target_properties(vkcv_shader_compiler PROPERTIES PUBLIC_HEADER "${vkcv_shad
 set(vkcv_shader_compiler_lib lib)
 set(vkcv_shader_compiler_lib_path ${PROJECT_SOURCE_DIR}/${vkcv_shader_compiler_lib})
 
-# Load SPIRV-Headers
+# Load JSON-C and SPIRV-Headers
+include(config/JSON-C.cmake)
 include(config/SPIRV-Headers.cmake)
 
 # Check and load GLSLANG
diff --git a/modules/shader_compiler/config/JSON-C.cmake b/modules/shader_compiler/config/JSON-C.cmake
new file mode 100644
index 00000000..498b933c
--- /dev/null
+++ b/modules/shader_compiler/config/JSON-C.cmake
@@ -0,0 +1,9 @@
+
+use_git_submodule("${vkcv_shader_compiler_lib_path}/json-c" json_c_status)
+
+if (${json_c_status})
+	add_subdirectory(${vkcv_shader_compiler_lib}/json-c)
+	
+	list(APPEND vkcv_shader_compiler_libraries json-c)
+	list(APPEND vkcv_shader_compiler_includes ${vkcv_shader_compiler_lib})
+endif ()
diff --git a/modules/shader_compiler/config/Shady.cmake b/modules/shader_compiler/config/Shady.cmake
index 88e1f7b3..b5d3bf6c 100644
--- a/modules/shader_compiler/config/Shady.cmake
+++ b/modules/shader_compiler/config/Shady.cmake
@@ -2,6 +2,7 @@
 use_git_submodule("${vkcv_shader_compiler_lib_path}/shady" shady_status)
 
 if (${shady_status})
+	set(EXTERNAL_JSON_C ON CACHE INTERNAL "")
     set(EXTERNAL_SPIRV_HEADERS ON CACHE INTERNAL "")
     set(EXTERNAL_MURMUR3 ON CACHE INTERNAL "")
 
diff --git a/modules/shader_compiler/lib/json-c b/modules/shader_compiler/lib/json-c
new file mode 160000
index 00000000..dabed805
--- /dev/null
+++ b/modules/shader_compiler/lib/json-c
@@ -0,0 +1 @@
+Subproject commit dabed80523fa5101e30f0ee57ba06b02beae73eb
diff --git a/modules/shader_compiler/lib/shady b/modules/shader_compiler/lib/shady
index 0a92cf7f..defbe9e8 160000
--- a/modules/shader_compiler/lib/shady
+++ b/modules/shader_compiler/lib/shady
@@ -1 +1 @@
-Subproject commit 0a92cf7ff4081d21db0724a8e66ab868b878df7d
+Subproject commit defbe9e83bc4d3a5f1a5ecf5ec10db449442761a
-- 
GitLab