[gameinput] Update for GameInput v3 (#48275)

This commit is contained in:
Chuck Walbourn
2025-11-14 13:03:52 -08:00
committed by GitHub
parent d1ff36c652
commit d6b4d40abe
6 changed files with 69 additions and 19 deletions

View File

@@ -0,0 +1,15 @@
cmake_minimum_required (VERSION 3.21)
project(GameInput LANGUAGES CXX)
add_library(${PROJECT_NAME} STATIC GameInput.cpp)
if(WIN32)
target_compile_definitions(${PROJECT_NAME} PRIVATE _UNICODE UNICODE _WIN32_WINNT=0x0A00)
endif()
include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

View File

@@ -1,7 +1,7 @@
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")
set(_gameinput_root_lib "${_gameinput_root}/lib/@LIB_NAME@")
add_library(Microsoft::GameInput INTERFACE IMPORTED)
set_target_properties(Microsoft::GameInput PROPERTIES

View File

@@ -1,18 +1,21 @@
if(VCPKG_TARGET_IS_XBOX)
cmake_path(SET GameDKXboxLatest "$ENV{GameDKXboxLatest}")
cmake_path(SET GRDKLatest "$ENV{GRDKLatest}")
cmake_path(SET GXDKLatest "$ENV{GXDKLatest}")
find_file(GAMEINPUT_H
NAMES GameInput.h
PATHS "${GRDKLatest}/gameKit/Include"
PATHS "${GameDKXboxLatest}/xbox/include"
"${GRDKLatest}/gameKit/Include"
"${GXDKLatest}/gameKit/Include"
NO_DEFAULT_PATH
)
find_library(GAMEINPUT_LIB
NAMES GameInput.lib
PATHS "${GRDKLatest}/gameKit/Lib/amd64"
PATHS "${GameDKXboxLatest}/xbox/lib/x64"
"${GRDKLatest}/gameKit/Lib/amd64"
"${GXDKLatest}/gameKit/Lib/amd64"
NO_DEFAULT_PATH
)
@@ -22,14 +25,14 @@ if(VCPKG_TARGET_IS_XBOX)
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})")
if(${GAMEINPUT_H} 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")
@@ -43,7 +46,7 @@ else()
vcpkg_download_distfile(ARCHIVE
URLS "https://www.nuget.org/api/v2/package/Microsoft.GameInput/${VERSION}"
FILENAME "gameinput.${VERSION}.zip"
SHA512 144cff0bfe9ba9e66d3641bdaed5cf8445bcfe52e83c7c160c111b983545f5346304821200acefe3aed0913ab14f3a9a17f7da1f67b6f75e36bad259f1b312c5
SHA512 7377a8cf9291318b99db4f94b6e2db6d8bd2a5afdac0b35bd38b3f51c75948a247e74dab155f2ba67d4ece78899e87c3e0e35510f1547bbc9b7c8202573a8ff6
)
vcpkg_extract_source_archive(
@@ -53,17 +56,34 @@ else()
)
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")
if(VCPKG_TARGET_IS_MINGW)
# "Thick" GameInput.lib is not compatible with MinGW
file(COPY "${PACKAGE_PATH}/native/lib/x64/GameInput.cpp" DESTINATION "${CURRENT_BUILDTREES_DIR}/fixlib")
configure_file("${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.in"
"${CURRENT_BUILDTREES_DIR}/fixlib/CMakeLists.txt"
COPYONLY)
vcpkg_cmake_configure(SOURCE_PATH "${CURRENT_BUILDTREES_DIR}/fixlib")
vcpkg_cmake_install()
set(LIB_NAME "libGameInput.a")
else()
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")
set(LIB_NAME "gameinput.lib")
endif()
endif()
configure_file("${CMAKE_CURRENT_LIST_DIR}/gameinput-config.cmake.in"
"${CURRENT_PACKAGES_DIR}/share/${PORT}/${PORT}-config.cmake"
COPYONLY)
@ONLY)
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")

View File

@@ -1,8 +1,18 @@
{
"name": "gameinput",
"version": "2.2.26100.6114",
"version": "3.1.26100.6879",
"description": "GameInput",
"homepage": "https://aka.ms/gameinput",
"license": null,
"supports": "windows & x64 & !uwp"
"supports": "windows & x64 & !uwp",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@@ -3181,7 +3181,7 @@
"port-version": 0
},
"gameinput": {
"baseline": "2.2.26100.6114",
"baseline": "3.1.26100.6879",
"port-version": 0
},
"gamenetworkingsockets": {

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e7eca0e7d1866ac7c18a817bec8e1b8df92ab5da",
"version": "3.1.26100.6879",
"port-version": 0
},
{
"git-tree": "9d4a382441b215a535cf212671e87daa224782bb",
"version": "2.2.26100.6114",