aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPark DongHa <luncliff@gmail.com>2021-01-25 18:54:04 +0900
committerGitHub <noreply@github.com>2021-01-25 01:54:04 -0800
commitbb4de6fe3f215a722df05193b774c32ddceb3097 (patch)
treecad8b3e805aa985d4aee3987656687ebcf5d2461
parentcc093a822431437b4a78945032f2996efe668a7d (diff)
downloadvcpkg-bb4de6fe3f215a722df05193b774c32ddceb3097.tar.gz
vcpkg-bb4de6fe3f215a722df05193b774c32ddceb3097.zip
[ms-gltf] Add new port (#14971)
* [ms-gltf] create a new port * [ms-gltf] install with CMAKE_INSTALL_PREFIX * add a patch to change install path style * [ms-gltf] enable iOS/UWP & support features * feature: support tests/samples to help debugging in buildtrees * triplet: ios/uwp are now available * [ms-gltf] disable Ninja for Windows * [ms-gltf] format the manifest json * [ms-gltf] update expected failures * x64-linux * [ms-gltf] format the manifest json * [ms-gltf] update comments * [ms-gltf] make "test" default feature * [ms-gltf] add version JSON * Address the review suggestions * vcpkg x-add-version ms-gltf * [ms-gltf] fix 'x64-osx' triplet 'samples' feature * [ms-gltf] update git-tree of port Co-authored-by: PhoebeHui <20694052+PhoebeHui@users.noreply.github.com>
-rw-r--r--ports/ms-gltf/fix-apple-filesystem.patch66
-rw-r--r--ports/ms-gltf/fix-install.patch44
-rw-r--r--ports/ms-gltf/portfile.cmake41
-rw-r--r--ports/ms-gltf/vcpkg.json24
-rw-r--r--versions/baseline.json4
-rw-r--r--versions/m-/ms-gltf.json9
6 files changed, 188 insertions, 0 deletions
diff --git a/ports/ms-gltf/fix-apple-filesystem.patch b/ports/ms-gltf/fix-apple-filesystem.patch
new file mode 100644
index 000000000..d2d1a504b
--- /dev/null
+++ b/ports/ms-gltf/fix-apple-filesystem.patch
@@ -0,0 +1,66 @@
+diff --git a/GLTFSDK.Samples/CMakeLists.txt b/GLTFSDK.Samples/CMakeLists.txt
+index a66ed93..d948ee2 100644
+--- a/GLTFSDK.Samples/CMakeLists.txt
++++ b/GLTFSDK.Samples/CMakeLists.txt
+@@ -1,4 +1,6 @@
+ cmake_minimum_required(VERSION 3.5)
+-
++if(APPLE)
++ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15")
++endif()
+ add_subdirectory(Deserialize)
+ add_subdirectory(Serialize)
+diff --git a/GLTFSDK.Samples/Deserialize/CMakeLists.txt b/GLTFSDK.Samples/Deserialize/CMakeLists.txt
+index 791898c..6474aee 100644
+--- a/GLTFSDK.Samples/Deserialize/CMakeLists.txt
++++ b/GLTFSDK.Samples/Deserialize/CMakeLists.txt
+@@ -17,6 +17,8 @@ if (MSVC)
+
+ # Make sure that all PDB files on Windows are installed to the output folder. By default, only the debug build does this.
+ set_target_properties(Deserialize PROPERTIES COMPILE_PDB_NAME "Deserialize" COMPILE_PDB_OUTPUT_DIRECTORY "${RUNTIME_OUTPUT_DIRECTORY}")
++elseif(APPLE)
++ set_target_properties(Deserialize PROPERTIES CXX_STANDARD 17)
+ endif()
+
+ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+diff --git a/GLTFSDK.Samples/Deserialize/Source/main.cpp b/GLTFSDK.Samples/Deserialize/Source/main.cpp
+index 80198fa..fb560e0 100644
+--- a/GLTFSDK.Samples/Deserialize/Source/main.cpp
++++ b/GLTFSDK.Samples/Deserialize/Source/main.cpp
+@@ -8,6 +8,9 @@
+
+ // Replace this with <filesystem> (and use std::filesystem rather than
+ // std::experimental::filesystem) if your toolchain fully supports C++17
++#if defined(__APPLE__)
++#define _LIBCPP_NO_EXPERIMENTAL_DEPRECATION_WARNING_FILESYSTEM
++#endif
+ #include <experimental/filesystem>
+
+ #include <fstream>
+diff --git a/GLTFSDK.Samples/Serialize/CMakeLists.txt b/GLTFSDK.Samples/Serialize/CMakeLists.txt
+index 5269da8..1129ea0 100644
+--- a/GLTFSDK.Samples/Serialize/CMakeLists.txt
++++ b/GLTFSDK.Samples/Serialize/CMakeLists.txt
+@@ -17,6 +17,8 @@ if (MSVC)
+
+ # Make sure that all PDB files on Windows are installed to the output folder. By default, only the debug build does this.
+ set_target_properties(Serialize PROPERTIES COMPILE_PDB_NAME "Serialize" COMPILE_PDB_OUTPUT_DIRECTORY "${RUNTIME_OUTPUT_DIRECTORY}")
++elseif(APPLE)
++ set_target_properties(Serialize PROPERTIES CXX_STANDARD 17)
+ endif()
+
+ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+diff --git a/GLTFSDK.Samples/Serialize/Source/main.cpp b/GLTFSDK.Samples/Serialize/Source/main.cpp
+index ac87c10..f5c6e0b 100644
+--- a/GLTFSDK.Samples/Serialize/Source/main.cpp
++++ b/GLTFSDK.Samples/Serialize/Source/main.cpp
+@@ -10,6 +10,9 @@
+
+ // Replace this with <filesystem> (and use std::filesystem rather than
+ // std::experimental::filesystem) if your toolchain fully supports C++17
++#if defined(__APPLE__)
++#define _LIBCPP_NO_EXPERIMENTAL_DEPRECATION_WARNING_FILESYSTEM
++#endif
+ #include <experimental/filesystem>
+
+ #include <fstream>
diff --git a/ports/ms-gltf/fix-install.patch b/ports/ms-gltf/fix-install.patch
new file mode 100644
index 000000000..59b5eebbc
--- /dev/null
+++ b/ports/ms-gltf/fix-install.patch
@@ -0,0 +1,44 @@
+diff --git a/Build/CMake/Modules/GLTFPlatform.cmake b/Build/CMake/Modules/GLTFPlatform.cmake
+index 3d940f5..322f029 100644
+--- a/Build/CMake/Modules/GLTFPlatform.cmake
++++ b/Build/CMake/Modules/GLTFPlatform.cmake
+@@ -55,14 +55,14 @@ endfunction(GetGLTFPlatform)
+ function(CreateGLTFInstallTargets target platform)
+
+ install(TARGETS ${target}
+- ARCHIVE DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$<CONFIG>/${PROJECT_NAME}
+- LIBRARY DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$<CONFIG>/${PROJECT_NAME}
+- RUNTIME DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$<CONFIG>/${PROJECT_NAME}
+- BUNDLE DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$<CONFIG>/${PROJECT_NAME}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
++ LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/lib
++ RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
++ BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
+ )
+
+ if (MSVC)
+- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${PROJECT_NAME}.pdb DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${platform}/$<CONFIG>/${PROJECT_NAME})
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/${PROJECT_NAME}.pdb DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
+ endif()
+
+ endfunction(CreateGLTFInstallTargets)
+diff --git a/GLTFSDK.Test/CMakeLists.txt b/GLTFSDK.Test/CMakeLists.txt
+index 5c8eca7..a0752a3 100644
+--- a/GLTFSDK.Test/CMakeLists.txt
++++ b/GLTFSDK.Test/CMakeLists.txt
+@@ -46,4 +46,4 @@ add_custom_command(TARGET GLTFSDK.Test
+ AddGLTFIOSAppProperties(GLTFSDK.Test)
+ CreateGLTFInstallTargets(GLTFSDK.Test ${Platform})
+
+-install(FILES ${PROJECT_BINARY_DIR}/$<CONFIG>/Resources/ DESTINATION ${CMAKE_SOURCE_DIR}/Built/Out/${Platform}/$<CONFIG>/${PROJECT_NAME}/Resources)
++install(FILES ${PROJECT_BINARY_DIR}/$<CONFIG>/Resources/ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+diff --git a/GLTFSDK/CMakeLists.txt b/GLTFSDK/CMakeLists.txt
+index 3c53c74..1e8d223 100644
+--- a/GLTFSDK/CMakeLists.txt
++++ b/GLTFSDK/CMakeLists.txt
+@@ -46,4 +46,5 @@ target_include_directories(GLTFSDK
+ PRIVATE "${CMAKE_BINARY_DIR}/GeneratedFiles"
+ )
+
++install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/Inc/GLTFSDK DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
+ CreateGLTFInstallTargets(GLTFSDK ${Platform})
diff --git a/ports/ms-gltf/portfile.cmake b/ports/ms-gltf/portfile.cmake
new file mode 100644
index 000000000..503fdae04
--- /dev/null
+++ b/ports/ms-gltf/portfile.cmake
@@ -0,0 +1,41 @@
+vcpkg_fail_port_install(MESSAGE "ms-gltf currently only supports Windows and Mac platforms" ON_TARGET "linux" "ios")
+if(VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO microsoft/glTF-SDK
+ REF 9428f114b540fb93e6533d5ec460fc123efe0c86 # todo: r1.9.6.0
+ SHA512 900caf6d72d360bae4c7af769a8879507f7f727b40f61723ffed679ad22877fb37daed2a0dfcbf27e15ab3adc8afe3249530b95691ce489b3446e5d9a35f205a
+ HEAD_REF master
+ PATCHES
+ fix-install.patch
+ fix-apple-filesystem.patch
+)
+
+# note: Test/Sample executables won't be installed
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ test ENABLE_UNIT_TESTS
+ samples ENABLE_SAMPLES
+)
+
+# note: Platform-native buildsystem will be more helpful to launch/debug the tests/samples.
+# note: The PDB file path is making Ninja fails to install.
+# For Windows, we rely on /MP. The other platforms should be able to build with PREFER_NINJA.
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ ${FEATURE_OPTIONS}
+)
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+file(INSTALL ${SOURCE_PATH}/LICENSE
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
diff --git a/ports/ms-gltf/vcpkg.json b/ports/ms-gltf/vcpkg.json
new file mode 100644
index 000000000..f734d9586
--- /dev/null
+++ b/ports/ms-gltf/vcpkg.json
@@ -0,0 +1,24 @@
+{
+ "name": "ms-gltf",
+ "version-string": "r1.9.5.0",
+ "description": "glTF-SDK is a C++ Software Development Kit for glTF",
+ "homepage": "https://github.com/microsoft/ms-gltf",
+ "supports": "!linux",
+ "dependencies": [
+ "rapidjson"
+ ],
+ "default-features": [
+ "test"
+ ],
+ "features": {
+ "samples": {
+ "description": "Build with GLTF samples"
+ },
+ "test": {
+ "description": "Build test programs",
+ "dependencies": [
+ "gtest"
+ ]
+ }
+ }
+}
diff --git a/versions/baseline.json b/versions/baseline.json
index 353ff3db4..bc4973d54 100644
--- a/versions/baseline.json
+++ b/versions/baseline.json
@@ -3868,6 +3868,10 @@
"baseline": "alias",
"port-version": 0
},
+ "ms-gltf": {
+ "baseline": "r1.9.5.0",
+ "port-version": 0
+ },
"ms-gsl": {
"baseline": "3.1.0",
"port-version": 0
diff --git a/versions/m-/ms-gltf.json b/versions/m-/ms-gltf.json
new file mode 100644
index 000000000..f583a8a81
--- /dev/null
+++ b/versions/m-/ms-gltf.json
@@ -0,0 +1,9 @@
+{
+ "versions": [
+ {
+ "git-tree": "1c3bf009ece6942607e095c0088810b6dbf86d38",
+ "version-string": "r1.9.5.0",
+ "port-version": 0
+ }
+ ]
+}