aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/ms-gdk
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/ms-gdk')
-rw-r--r--vcpkg/ports/ms-gdk/pfusage12
-rw-r--r--vcpkg/ports/ms-gdk/portfile.cmake84
-rw-r--r--vcpkg/ports/ms-gdk/usage16
-rw-r--r--vcpkg/ports/ms-gdk/vcpkg.json28
4 files changed, 140 insertions, 0 deletions
diff --git a/vcpkg/ports/ms-gdk/pfusage b/vcpkg/ports/ms-gdk/pfusage
new file mode 100644
index 0000000..1f645dc
--- /dev/null
+++ b/vcpkg/ports/ms-gdk/pfusage
@@ -0,0 +1,12 @@
+
+ find_package(playfab.services.c CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::PlayFabServices)
+
+ find_package(playfab.multiplayer.cpp CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::PlayFabMultiplayer)
+
+ find_package(playfab.party.cpp CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::PlayFabParty)
+
+ find_package(playfab.partyxboxlive.cpp CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::PlayFabPartyLIVE)
diff --git a/vcpkg/ports/ms-gdk/portfile.cmake b/vcpkg/ports/ms-gdk/portfile.cmake
new file mode 100644
index 0000000..7a81587
--- /dev/null
+++ b/vcpkg/ports/ms-gdk/portfile.cmake
@@ -0,0 +1,84 @@
+set(GDK_EDITION_NUMBER 250403)
+
+# The GDK contains a combination of static C++ libraries and DLL-based extension libraries.
+vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://www.nuget.org/api/v2/package/Microsoft.GDK.PC/${VERSION}"
+ FILENAME "ms-gdk.${VERSION}.zip"
+ SHA512 a7ece6899aca25dba4c0c4bb8947502090c2576beef677a33b878cdf8babdc18925f6349161f5b6a518d7c1c7f5a7ac66f23983147672f67e9067acb2004e1c8
+)
+
+vcpkg_extract_source_archive(
+ PACKAGE_PATH
+ ARCHIVE "${ARCHIVE}"
+ NO_REMOVE_ONE_LEVEL
+)
+
+vcpkg_check_features(
+ OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ playfab BUILD_PLAYFAB_SERVICES
+)
+
+set(GRDK_PATH "${PACKAGE_PATH}/native/${GDK_EDITION_NUMBER}/GRDK")
+
+# We use the gameinput port instead
+file(REMOVE "${GRDK_PATH}/GameKit/Include/GameInput.h")
+file(REMOVE "${GRDK_PATH}/GameKit/Lib/amd64/GameInput.lib")
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${GRDK_PATH}"
+ OPTIONS ${FEATURE_OPTIONS}
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(PACKAGE_NAME xbox.gameruntime)
+vcpkg_cmake_config_fixup(PACKAGE_NAME xbox.game.chat.2.cpp.api)
+vcpkg_cmake_config_fixup(PACKAGE_NAME xbox.libhttpclient)
+vcpkg_cmake_config_fixup(PACKAGE_NAME xbox.services.api.c)
+vcpkg_cmake_config_fixup(PACKAGE_NAME xbox.xcurl.api)
+
+set(LICENSE_FILES "${PACKAGE_PATH}/LICENSE.md")
+
+list(APPEND LICENSE_FILES
+ "${GRDK_PATH}/ExtensionLibraries/Xbox.LibHttpClient/Include/httpClient/ThirdPartyNotices.txt"
+ "${GRDK_PATH}/ExtensionLibraries/Xbox.XCurl.API/Include/ThirdPartyNotices.txt"
+ "${GRDK_PATH}/ExtensionLibraries/Xbox.Services.API.C/Include/cpprest/ThirdPartyNotices.txt"
+ "${GRDK_PATH}/ExtensionLibraries/Xbox.Services.API.C/Include/pplx/ThirdPartyNotices.txt"
+ "${GRDK_PATH}/ExtensionLibraries/Xbox.Services.API.C/Include/xsapi-c/ThirdPartyNotices.txt"
+ "${GRDK_PATH}/ExtensionLibraries/Xbox.Services.API.C/Include/xsapi-cpp/ThirdPartyNotices.txt"
+)
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+
+if("playfab" IN_LIST FEATURES)
+ vcpkg_cmake_config_fixup(PACKAGE_NAME playfab.multiplayer.cpp)
+ vcpkg_cmake_config_fixup(PACKAGE_NAME playfab.party.cpp)
+ vcpkg_cmake_config_fixup(PACKAGE_NAME playfab.partyxboxlive.cpp)
+ vcpkg_cmake_config_fixup(PACKAGE_NAME playfab.services.c)
+
+ list(APPEND LICENSE_FILES
+ "${GRDK_PATH}/ExtensionLibraries/PlayFab.Multiplayer.Cpp/Include/NOTICE.txt"
+ "${GRDK_PATH}/ExtensionLibraries/PlayFab.Party.Cpp/Include/NOTICE.txt"
+ "${GRDK_PATH}/ExtensionLibraries/PlayFab.PartyXboxLive.Cpp/Include/NOTICE.txt"
+ )
+
+ file(READ "${CMAKE_CURRENT_LIST_DIR}/pfusage" USAGE_CONTENT)
+ file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" ${USAGE_CONTENT})
+else()
+endif()
+
+file(INSTALL "${PACKAGE_PATH}/native/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools")
+file(INSTALL "${PACKAGE_PATH}/native/bin/GameConfigEditorDependencies" DESTINATION "${CURRENT_PACKAGES_DIR}/tools")
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+# Uses the cpprestsdk port instead
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/cpprest")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/include/pplx")
+
+vcpkg_install_copyright(FILE_LIST ${LICENSE_FILES})
+
+message(STATUS "BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS: https://www.nuget.org/packages/Microsoft.GDK.PC/${VERSION}/License")
diff --git a/vcpkg/ports/ms-gdk/usage b/vcpkg/ports/ms-gdk/usage
new file mode 100644
index 0000000..9390ec1
--- /dev/null
+++ b/vcpkg/ports/ms-gdk/usage
@@ -0,0 +1,16 @@
+The Microsoft GDK package provides CMake targets:
+
+ find_package(xbox.gameruntime CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::GameRuntime)
+
+ find_package(xbox.libhttpclient CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::HTTPClient)
+
+ find_package(xbox.xcurl.api CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::XCurl)
+
+ find_package(xbox.services.api.c CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::XSAPI)
+
+ find_package(xbox.game.chat.2.cpp.api CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE Xbox::GameChat2)
diff --git a/vcpkg/ports/ms-gdk/vcpkg.json b/vcpkg/ports/ms-gdk/vcpkg.json
new file mode 100644
index 0000000..ce71b61
--- /dev/null
+++ b/vcpkg/ports/ms-gdk/vcpkg.json
@@ -0,0 +1,28 @@
+{
+ "name": "ms-gdk",
+ "version": "2504.3.4084",
+ "description": "Microsoft Game Development Kit (GDK)",
+ "homepage": "https://aka.ms/gdkx",
+ "documentation": "https://aka.ms/gamedevdocs",
+ "license": null,
+ "supports": "windows & x64 & !uwp & !xbox & !staticcrt",
+ "dependencies": [
+ {
+ "name": "cpprestsdk",
+ "default-features": false
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "playfab": {
+ "description": "Include PlayFab Extension Libraries"
+ }
+ }
+}