diff options
| author | Bradley Austin Davis <bdavis@saintandreas.org> | 2019-07-15 14:42:45 -0700 |
|---|---|---|
| committer | Victor Romero <romerosanchezv@gmail.com> | 2019-07-15 14:42:44 -0700 |
| commit | 0c8139dbe8ef08ddf38c7f38e094c3cbc4c8bce9 (patch) | |
| tree | 99910a893fda43db0d9b88afe976c55eddcd47bb /ports/openxr-loader/portfile.cmake | |
| parent | 40200c829a7a4636ce75ae355dd47d2e458bca75 (diff) | |
| download | vcpkg-0c8139dbe8ef08ddf38c7f38e094c3cbc4c8bce9.tar.gz vcpkg-0c8139dbe8ef08ddf38c7f38e094c3cbc4c8bce9.zip | |
[openxr-loader] Initial port (#6339)
* [openxr] add initial port
* [openxr-loader] Set executable suffix
* [openxr-loader] Use correct checks for Windows
* [openxr-loader] Add failure messages for unsupported platforms
Diffstat (limited to 'ports/openxr-loader/portfile.cmake')
| -rw-r--r-- | ports/openxr-loader/portfile.cmake | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/ports/openxr-loader/portfile.cmake b/ports/openxr-loader/portfile.cmake new file mode 100644 index 000000000..8b2fb4671 --- /dev/null +++ b/ports/openxr-loader/portfile.cmake @@ -0,0 +1,78 @@ +if (VCPKG_TARGET_ARCHITECTURE MATCHES "^arm*") + message(FATAL_ERROR "OpenXR does not support arm") +endif() + +if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + # Due to UWP restricting the usage of static CRT OpenXR cannot be built. + message(FATAL_ERROR "OpenXR does not support UWP") +endif() + +include(vcpkg_common_functions) + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO KhronosGroup/OpenXR-SDK + REF release-0.90.1 + SHA512 99b16b52511fef740fa7a1e234213310a4490b8d7baf4d1e003b93cf4f37b28abf526f6ed2d1e27e9ee2b4949b1957f15c20d4e0f8d30687806fe782780697af + HEAD_REF master + PATCHES + # embedded python uses ignores PYTHONPATH + 0001-fix-embedded-python-path.patch + # Pkg-config is not available on the Vcpkg CI systems, don't depend on it for the xlib backend + 0002-fix-linux-pkgconfig-dependency.patch + # Python < 3.6 doesn't allow a WindowsPath object to act as a pathlike in os.path functions + 0003-windows-path-python-fix.patch +) + +# Weird behavior inside the OpenXR loader. On Windows they force shared libraries to use static crt, and +# vice-versa. Might be better in future iterations to patch the CMakeLists.txt for OpenXR +if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + set(DYNAMIC_LOADER OFF) + set(VCPKG_CRT_LINKAGE dynamic) + else() + set(DYNAMIC_LOADER ON) + set(VCPKG_CRT_LINKAGE static) + endif() +endif() + +vcpkg_find_acquire_program(PYTHON3) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + -DBUILD_API_LAYERS=OFF + -DBUILD_TESTS=OFF + -DDYNAMIC_LOADER=${DYNAMIC_LOADER} + -DPYTHON_EXECUTABLE=${PYTHON3} +) + +vcpkg_install_cmake() + +function(COPY_BINARIES SOURCE DEST) + # hack, because CMAKE_SHARED_LIBRARY_SUFFIX seems to be unpopulated + if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(SHARED_LIB_SUFFIX ".dll") + else() + set(SHARED_LIB_SUFFIX ".so") + endif() + file(MAKE_DIRECTORY ${DEST}) + file(GLOB_RECURSE SHARED_BINARIES ${SOURCE}/*${SHARED_LIB_SUFFIX}) + file(COPY ${SHARED_BINARIES} DESTINATION ${DEST}) + file(REMOVE_RECURSE ${SHARED_BINARIES}) +endfunction() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +# No CMake files are contained in /share only docs +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share) + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openxr-loader RENAME copyright) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) + COPY_BINARIES(${CURRENT_PACKAGES_DIR}/lib ${CURRENT_PACKAGES_DIR}/bin) + COPY_BINARIES(${CURRENT_PACKAGES_DIR}/debug/lib ${CURRENT_PACKAGES_DIR}/debug/bin) +endif() + +vcpkg_copy_pdbs() |
