From d09a920ad2e6adb8da40d4510b187bab1dff6c4f Mon Sep 17 00:00:00 2001
From: Ada <ada+github@thingvellir.net>
Date: Tue, 1 Apr 2025 23:33:49 +1000
Subject: [PATCH] Update OpenXR-SDK to 1.1.46

---
 cmake/ports/openxr-loader/fix-jinja2.patch    | 23 -------------------
 .../fix-openxr-sdk-jsoncpp.patch              | 16 ++++++-------
 cmake/ports/openxr-loader/portfile.cmake      | 23 ++-----------------
 .../python3_8_compatibility.patch             | 13 -----------
 cmake/ports/openxr-loader/vcpkg.json          |  2 +-
 5 files changed, 11 insertions(+), 66 deletions(-)
 delete mode 100644 cmake/ports/openxr-loader/fix-jinja2.patch
 delete mode 100644 cmake/ports/openxr-loader/python3_8_compatibility.patch

diff --git a/cmake/ports/openxr-loader/fix-jinja2.patch b/cmake/ports/openxr-loader/fix-jinja2.patch
deleted file mode 100644
index 5d77cb4e46..0000000000
--- a/cmake/ports/openxr-loader/fix-jinja2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From d80c7dc3f4810fc49e4444590d39ef71e8a9b01c Mon Sep 17 00:00:00 2001
-From: Adam Johnson <AdamJohnso@gmail.com>
-Date: Sat, 19 Feb 2022 19:42:31 -0500
-Subject: [PATCH] Fix bad import in jinja2
-
----
- external/python/jinja2/utils.py | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/external/python/jinja2/utils.py b/external/python/jinja2/utils.py
-index db9c5d06..f198e3ef 100644
---- a/external/python/jinja2/utils.py
-+++ b/external/python/jinja2/utils.py
-@@ -639,4 +639,8 @@ def __repr__(self):
- 
- 
- # Imported here because that's where it was in the past
--from markupsafe import Markup, escape, soft_unicode
-+from markupsafe import Markup, escape
-+try:
-+    from markupsafe import soft_unicode
-+except ImportError:
-+    from markupsafe import soft_str as soft_unicode
diff --git a/cmake/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch b/cmake/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch
index 758d55e0f8..cfe1ef2b80 100644
--- a/cmake/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch
+++ b/cmake/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch
@@ -1,8 +1,8 @@
 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index c75b145..386494c 100644
+index c2e53cf..2c195de 100644
 --- a/src/CMakeLists.txt
 +++ b/src/CMakeLists.txt
-@@ -89,7 +89,7 @@ if(NOT VULKAN_INCOMPATIBLE)
+@@ -122,7 +122,7 @@ if(NOT METAL_INCOMPATIBLE)
  endif()
  
  find_package(Threads REQUIRED)
@@ -12,12 +12,12 @@ index c75b145..386494c 100644
  ### All options defined here
  option(BUILD_LOADER "Build loader" ON)
 diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt
-index 6a88cf4..0821a3d 100644
+index 28aff53..6ee58f4 100644
 --- a/src/loader/CMakeLists.txt
 +++ b/src/loader/CMakeLists.txt
-@@ -68,7 +68,11 @@ add_library(openxr_loader ${LIBRARY_TYPE}
-     ${openxr_loader_RESOURCE_FILE}
- )
+@@ -101,7 +101,11 @@ endif()
+ 
+ # Get jsoncpp externally or internally
  if(BUILD_WITH_SYSTEM_JSONCPP)
 -    target_link_libraries(openxr_loader PRIVATE JsonCpp::JsonCpp)
 +    if(BUILD_SHARED_LIBS)
@@ -26,5 +26,5 @@ index 6a88cf4..0821a3d 100644
 +        target_link_libraries(openxr_loader PRIVATE jsoncpp_static)
 +    endif()
  else()
-     target_sources(openxr_loader
-         PRIVATE
+     if(NOT BUILD_LOADER_WITH_EXCEPTION_HANDLING)
+         target_compile_definitions(openxr_loader PRIVATE JSON_USE_EXCEPTION=0)
diff --git a/cmake/ports/openxr-loader/portfile.cmake b/cmake/ports/openxr-loader/portfile.cmake
index 4d1127e56e..fb5b51296d 100644
--- a/cmake/ports/openxr-loader/portfile.cmake
+++ b/cmake/ports/openxr-loader/portfile.cmake
@@ -3,7 +3,7 @@ vcpkg_from_github(
     OUT_SOURCE_PATH SOURCE_PATH
     REPO KhronosGroup/OpenXR-SDK
     REF "release-${VERSION}"
-    SHA512 6efc7596e707f95366dbcdbac9bd7d0c20735a2175b4edf56a9e8a112cf0ab8b664069fe942313164a37119032ddbf5671bc88ab5f276005dd36e4a4dabba1c7
+    SHA512 f5f02857036d14c3894bee979bf108c4066ff5551393bc9bdde85dced5c5007148880c6174174dfe3b844e00baeb66106afbf18be069958128404d6a9bdc96ce
     HEAD_REF master
     PATCHES
         fix-openxr-sdk-jsoncpp.patch
@@ -13,21 +13,10 @@ vcpkg_from_github(
     OUT_SOURCE_PATH SDK_SOURCE_PATH
     REPO KhronosGroup/OpenXR-SDK-Source
     REF "release-${VERSION}"
-    SHA512 04bdb0f16078209b5edd175a3396f70e1ceb8cfa382c65b8fda388e565480e3844daf68e0d987e72ed8c21d3148af0b41a2170911ec1660565887e0e5ae6d2bf
+    SHA512 29155f5cd6104a479ce25ea090020001a01652ce42823ddad3e2569d7d2d513a0339c084d90acd3a00b220f7ba1cf68af1ac4b4c01f0a949aa9d919a1914d6c9
     HEAD_REF master
     PATCHES
         fix-openxr-sdk-jsoncpp.patch
-        fix-jinja2.patch
-)
-
-vcpkg_from_github(
-    OUT_SOURCE_PATH HPP_SOURCE_PATH
-    REPO KhronosGroup/OpenXR-hpp
-    REF 63db9919822f8af6f7bf7416ba6a015d4617202e
-    SHA512 9e768f485d1631f8e74f35f028a64e2d64e33d362c53ae1c54427a10786e3befdd24089927319aa1a4b4c3e010247bd6cb3394bcee460c467c637ab6bc7bec90
-    HEAD_REF master
-    PATCHES
-        python3_8_compatibility.patch
 )
 
 # Weird behavior inside the OpenXR loader.  On Windows they force shared libraries to use static crt, and
@@ -57,14 +46,6 @@ vcpkg_cmake_configure(
 
 vcpkg_cmake_install()
 
-# Generate the OpenXR C++ bindings
-set(ENV{OPENXR_REPO} "${SDK_SOURCE_PATH}")
-vcpkg_execute_required_process(
-    COMMAND ${PYTHON3} "${HPP_SOURCE_PATH}/scripts/hpp_genxr.py" -quiet  -registry "${SDK_SOURCE_PATH}/specification/registry/xr.xml" -o "${CURRENT_PACKAGES_DIR}/include/openxr"
-    WORKING_DIRECTORY "${HPP_SOURCE_PATH}"
-    LOGNAME "openxr-hpp"
-)
-
 if(VCPKG_TARGET_IS_WINDOWS)
     vcpkg_cmake_config_fixup(PACKAGE_NAME OpenXR CONFIG_PATH cmake)
 else()
diff --git a/cmake/ports/openxr-loader/python3_8_compatibility.patch b/cmake/ports/openxr-loader/python3_8_compatibility.patch
deleted file mode 100644
index 657bb2b7ab..0000000000
--- a/cmake/ports/openxr-loader/python3_8_compatibility.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/scripts/hpp_genxr.py b/scripts/hpp_genxr.py
-index ce419b0..23e1d3d 100644
---- a/scripts/hpp_genxr.py
-+++ b/scripts/hpp_genxr.py
-@@ -36,7 +36,7 @@ from xrconventions import OpenXRConventions
- from data import EXCLUDED_EXTENSIONS
-
-
--def makeREstring(strings: Iterable[str], default: typing.Optional[str] = None) -> str:
-+def makeREstring(strings, default: typing.Optional[str] = None) -> str:
-     """Turn a list of strings into a regexp string matching exactly those strings."""
-     if strings or default is None:
-         return f"^({'|'.join(re.escape(s) for s in strings)})$"
diff --git a/cmake/ports/openxr-loader/vcpkg.json b/cmake/ports/openxr-loader/vcpkg.json
index a45e3c9199..bc9767db20 100644
--- a/cmake/ports/openxr-loader/vcpkg.json
+++ b/cmake/ports/openxr-loader/vcpkg.json
@@ -1,6 +1,6 @@
 {
   "name": "openxr-loader",
-  "version": "1.0.31",
+  "version": "1.1.46",
   "description": "A royalty-free, open standard that provides high-performance access to Augmented Reality (AR) and Virtual Reality (VR)—collectively known as XR—platforms and devices",
   "homepage": "https://github.com/KhronosGroup/OpenXR-SDK",
   "license": "Apache-2.0",