[gameinput] Add port to use Microsoft.GameInput from nuget.org (#41762)

Co-authored-by: WangWeiLin-MV <156736127+WangWeiLin-MV@users.noreply.github.com>
This commit is contained in:
Chuck Walbourn 2024-10-29 02:08:35 -07:00 committed by GitHub
parent ad80ad226b
commit 3bf6fd4baa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 108 additions and 0 deletions

View File

@ -0,0 +1,12 @@
get_filename_component(_gameinput_root "${CMAKE_CURRENT_LIST_DIR}" PATH)
get_filename_component(_gameinput_root "${_gameinput_root}" PATH)
set(_gameinput_root_lib "${_gameinput_root}/lib/gameinput.lib")
add_library(Microsoft::GameInput INTERFACE IMPORTED)
set_target_properties(Microsoft::GameInput PROPERTIES
INTERFACE_LINK_LIBRARIES "${_gameinput_root_lib}"
INTERFACE_INCLUDE_DIRECTORIES "${_gameinput_root}/include")
unset(_gameinput_root_lib)
unset(_gameinput_root)

View File

@ -0,0 +1,69 @@
if(VCPKG_TARGET_IS_XBOX)
cmake_path(SET GRDKLatest "$ENV{GRDKLatest}")
cmake_path(SET GXDKLatest "$ENV{GXDKLatest}")
find_file(GAMEINPUT_H
NAMES GameInput.h
PATHS "${GRDKLatest}/gameKit/Include"
"${GXDKLatest}/gameKit/Include"
NO_DEFAULT_PATH
)
find_library(GAMEINPUT_LIB
NAMES GameInput.lib
PATHS "${GRDKLatest}/gameKit/Lib/amd64"
"${GXDKLatest}/gameKit/Lib/amd64"
NO_DEFAULT_PATH
)
if(NOT (GAMEINPUT_H AND GAMEINPUT_LIB))
message(FATAL_ERROR "Ensure you have installed the Microsoft GDK with Xbox Extensions installed. See https://aka.ms/gdkx.")
endif()
# Output user-friendly status message for installed edition.
if(${GXDKLatest} MATCHES ".*/([0-9][0-9])([0-9][0-9])([0-9][0-9])/.*")
set(_months "null" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December")
list(GET _months ${CMAKE_MATCH_2} month)
set(update "")
if(${CMAKE_MATCH_3} GREATER 0)
set(update " Update ${CMAKE_MATCH_3}")
endif()
message(STATUS "Found the Microsoft GDK with Xbox Extensions (${month} 20${CMAKE_MATCH_1}${update})")
endif()
file(INSTALL ${GAMEINPUT_H} DESTINATION "${CURRENT_PACKAGES_DIR}/include")
file(INSTALL ${GAMEINPUT_LIB} DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
file(INSTALL ${GAMEINPUT_LIB} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
set(VCPKG_POLICY_SKIP_COPYRIGHT_CHECK enabled)
else()
vcpkg_download_distfile(ARCHIVE
URLS "https://www.nuget.org/api/v2/package/Microsoft.GameInput/${VERSION}"
FILENAME "gameinput.${VERSION}.zip"
SHA512 4ad0e8a2ff14e498632557c64cdcd967c6b166b405b2c60427578a5f8b32b925184a1c74bce95a7a73a129e61edddbec030c4abe4ada287a2ce9ae50178cdcea
)
vcpkg_extract_source_archive(
PACKAGE_PATH
ARCHIVE ${ARCHIVE}
NO_REMOVE_ONE_LEVEL
)
file(INSTALL "${PACKAGE_PATH}/native/include/gameinput.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include")
file(INSTALL "${PACKAGE_PATH}/native/lib/${VCPKG_TARGET_ARCHITECTURE}/gameinput.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
file(INSTALL "${PACKAGE_PATH}/native/lib/${VCPKG_TARGET_ARCHITECTURE}/gameinput.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
file(INSTALL "${PACKAGE_PATH}/redist/GameInputRedist.msi" DESTINATION "${CURRENT_PACKAGES_DIR}/tools")
vcpkg_install_copyright(FILE_LIST "${PACKAGE_PATH}/LICENSE.txt")
endif()
configure_file("${CMAKE_CURRENT_LIST_DIR}/gameinput-config.cmake.in"
"${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake"
COPYONLY)
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")

6
ports/gameinput/usage Normal file
View File

@ -0,0 +1,6 @@
The GameInput package provides CMake targets:
find_package(gameinput CONFIG REQUIRED)
target_link_libraries(main PRIVATE Microsoft::GameInput)
Note that the GameInputRedist.msi must be installed on the target system for Windows.

View File

@ -0,0 +1,8 @@
{
"name": "gameinput",
"version": "0.2303.22621.3038",
"description": "GameInput",
"homepage": "https://aka.ms/gameinput",
"license": null,
"supports": "windows & x64 & !uwp"
}

View File

@ -2984,6 +2984,10 @@
"baseline": "1.2.0", "baseline": "1.2.0",
"port-version": 0 "port-version": 0
}, },
"gameinput": {
"baseline": "0.2303.22621.3038",
"port-version": 0
},
"gamenetworkingsockets": { "gamenetworkingsockets": {
"baseline": "1.4.1", "baseline": "1.4.1",
"port-version": 1 "port-version": 1

View File

@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "b71fb62174fb92b8fe4fa6a87311d202349bee72",
"version": "0.2303.22621.3038",
"port-version": 0
}
]
}