diff options
Diffstat (limited to 'vcpkg/ports/openxr-loader')
| -rw-r--r-- | vcpkg/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch | 25 | ||||
| -rw-r--r-- | vcpkg/ports/openxr-loader/msvc-crt.diff | 14 | ||||
| -rw-r--r-- | vcpkg/ports/openxr-loader/portfile.cmake | 68 | ||||
| -rw-r--r-- | vcpkg/ports/openxr-loader/python3_8_compatibility.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/openxr-loader/vcpkg.json | 37 |
5 files changed, 157 insertions, 0 deletions
diff --git a/vcpkg/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch b/vcpkg/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch new file mode 100644 index 0000000..f012813 --- /dev/null +++ b/vcpkg/ports/openxr-loader/fix-openxr-sdk-jsoncpp.patch @@ -0,0 +1,25 @@ +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index e618325..21d977f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -107,7 +107,7 @@ if(NOT VULKAN_INCOMPATIBLE)
+ endif()
+
+ find_package(Threads REQUIRED)
+-find_package(JsonCpp)
++find_package(JSONCPP NAMES jsoncpp REQUIRED)
+
+ ### All options defined here
+ option(BUILD_LOADER "Build loader" ON)
+diff --git a/src/loader/OpenXRConfig.cmake.in b/src/loader/OpenXRConfig.cmake.in
+index 81b12e7..4c24771 100644
+--- a/src/loader/OpenXRConfig.cmake.in
++++ b/src/loader/OpenXRConfig.cmake.in
+@@ -6,6 +6,7 @@
+
+ include(CMakeFindDependencyMacro)
+ find_dependency(Threads)
++find_dependency(jsoncpp CONFIG)
+
+ include("${CMAKE_CURRENT_LIST_DIR}/OpenXRTargets.cmake")
+
diff --git a/vcpkg/ports/openxr-loader/msvc-crt.diff b/vcpkg/ports/openxr-loader/msvc-crt.diff new file mode 100644 index 0000000..4e77983 --- /dev/null +++ b/vcpkg/ports/openxr-loader/msvc-crt.diff @@ -0,0 +1,14 @@ +diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt +index 326f74e..3192e69 100644 +--- a/src/loader/CMakeLists.txt ++++ b/src/loader/CMakeLists.txt +@@ -212,7 +212,8 @@ elseif(WIN32) + ) + endif() + +- if(DYNAMIC_LOADER AND NOT (CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")) ++ if(1) # CRT linkage from vcpkg ++ elseif(0) + # If building DLLs, force static CRT linkage + set_target_properties( + openxr_loader diff --git a/vcpkg/ports/openxr-loader/portfile.cmake b/vcpkg/ports/openxr-loader/portfile.cmake new file mode 100644 index 0000000..934f763 --- /dev/null +++ b/vcpkg/ports/openxr-loader/portfile.cmake @@ -0,0 +1,68 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KhronosGroup/OpenXR-SDK-Source + REF "release-${VERSION}" + SHA512 9d7548e6d992cde412e331fc6253960d37897cc4b55cafdc07f7d0a14a70d5ec8534b33f3bb537c797306035cb80aa1b3abf2656ed9d4a6e43e375f5f6e1e2a4 + HEAD_REF master + PATCHES + fix-openxr-sdk-jsoncpp.patch + msvc-crt.diff +) + +vcpkg_from_github( + OUT_SOURCE_PATH HPP_SOURCE_PATH + REPO KhronosGroup/OpenXR-hpp + REF af6f069aa1e003041311090237bb41471c776ff6 + SHA512 986d214a7f725c9b8000a61d8614ecaa0495173a1683a5e1bec636be22f6617551ae43e3e0fd2b0cba6e427f6ed6014daa56deed8497b32cb1236cd35ed8788c + HEAD_REF master + PATCHES + python3_8_compatibility.patch +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + vulkan VCPKG_LOCK_FIND_PACKAGE_Vulkan +) + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" DYNAMIC_LOADER) + +vcpkg_find_acquire_program(PYTHON3) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DBUILD_API_LAYERS=OFF + -DBUILD_CONFORMANCE_TESTS=OFF + -DBUILD_TESTS=OFF + -DCMAKE_INSTALL_INCLUDEDIR=include + -DDYNAMIC_LOADER=${DYNAMIC_LOADER} + "-DPython3_EXECUTABLE=${PYTHON3}" +) + +vcpkg_cmake_install() +vcpkg_fixup_pkgconfig() +vcpkg_copy_pdbs() + +# "openxr-loader" matches "<name>*" for "OpenXR", so use the default. +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_cmake_config_fixup(CONFIG_PATH cmake) +else() + vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/openxr) +endif() + +# Generate the OpenXR C++ bindings +set(ENV{OPENXR_REPO} "${SOURCE_PATH}") +vcpkg_execute_required_process( + COMMAND "${PYTHON3}" "${HPP_SOURCE_PATH}/scripts/hpp_genxr.py" -quiet -registry "${SOURCE_PATH}/specification/registry/xr.xml" -o "${CURRENT_PACKAGES_DIR}/include/openxr" + WORKING_DIRECTORY "${HPP_SOURCE_PATH}" + LOGNAME "openxr-hpp" +) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/share/doc" +) + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/openxr-loader/python3_8_compatibility.patch b/vcpkg/ports/openxr-loader/python3_8_compatibility.patch new file mode 100644 index 0000000..657bb2b --- /dev/null +++ b/vcpkg/ports/openxr-loader/python3_8_compatibility.patch @@ -0,0 +1,13 @@ +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/vcpkg/ports/openxr-loader/vcpkg.json b/vcpkg/ports/openxr-loader/vcpkg.json new file mode 100644 index 0000000..1475d17 --- /dev/null +++ b/vcpkg/ports/openxr-loader/vcpkg.json @@ -0,0 +1,37 @@ +{ + "name": "openxr-loader", + "version": "1.1.45", + "port-version": 1, + "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", + "supports": "!uwp", + "dependencies": [ + { + "name": "egl", + "platform": "android" + }, + "jsoncpp", + { + "name": "opengl", + "platform": "!android & !ios & !osx & !(arm & windows) & !uwp" + }, + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "vulkan": { + "description": "Vulkan functionality for OpenXR", + "supports": "!(arm & windows) & !uwp", + "dependencies": [ + "vulkan" + ] + } + } +} |