diff options
| author | Robert Schumacher <roschuma@microsoft.com> | 2017-03-21 15:48:29 -0700 |
|---|---|---|
| committer | Robert Schumacher <roschuma@microsoft.com> | 2017-03-21 17:02:18 -0700 |
| commit | 85169faaeaf93d5e88348d2e241272a5063debff (patch) | |
| tree | b6dc7d95a45e72e9a465854e2ea7a2942335bd14 | |
| parent | b01e4cb5516c42842c428d44e388a223b9e0974c (diff) | |
| download | vcpkg-85169faaeaf93d5e88348d2e241272a5063debff.tar.gz vcpkg-85169faaeaf93d5e88348d2e241272a5063debff.zip | |
[vcpkg-toolchain] Automatically detect Windows SDK version.
| -rw-r--r-- | scripts/buildsystems/vcpkg.cmake | 12 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_get_windows_sdk.cmake | 3 |
2 files changed, 13 insertions, 2 deletions
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 0cd9e0135..80f35edbd 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -39,8 +39,9 @@ if(NOT VCPKG_TOOLCHAIN) endif() set(VCPKG_TARGET_TRIPLET ${_VCPKG_TARGET_TRIPLET_ARCH}-${_VCPKG_TARGET_TRIPLET_PLAT} CACHE STRING "Vcpkg target triplet (ex. x86-windows)") - set(_VCPKG_INSTALLED_DIR ${CMAKE_CURRENT_LIST_DIR}/../../installed) set(_VCPKG_TOOLCHAIN_DIR ${CMAKE_CURRENT_LIST_DIR}) + get_filename_component(_VCPKG_ROOT_DIR ${_VCPKG_TOOLCHAIN_DIR}/../.. ABSOLUTE) + set(_VCPKG_INSTALLED_DIR ${_VCPKG_ROOT_DIR}/installed) if(CMAKE_BUILD_TYPE MATCHES "^Debug$" OR NOT DEFINED CMAKE_BUILD_TYPE) list(APPEND CMAKE_PREFIX_PATH @@ -59,6 +60,15 @@ if(NOT VCPKG_TOOLCHAIN) set(Boost_COMPILER "-vc140") + if (NOT DEFINED CMAKE_SYSTEM_VERSION) + include(${_VCPKG_ROOT_DIR}/scripts/cmake/vcpkg_get_windows_sdk.cmake) + # This is used as an implicit parameter for vcpkg_get_windows_sdk + set(VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR}) + vcpkg_get_windows_sdk(WINDOWS_SDK_VERSION) + unset(VCPKG_ROOT_DIR) + set(CMAKE_SYSTEM_VERSION ${WINDOWS_SDK_VERSION}) + endif() + file(TO_CMAKE_PATH "$ENV{PROGRAMFILES}" _programfiles) set(CMAKE_SYSTEM_IGNORE_PATH "${_programfiles}/OpenSSL" diff --git a/scripts/cmake/vcpkg_get_windows_sdk.cmake b/scripts/cmake/vcpkg_get_windows_sdk.cmake index cefe8cfd8..ca58ab10a 100644 --- a/scripts/cmake/vcpkg_get_windows_sdk.cmake +++ b/scripts/cmake/vcpkg_get_windows_sdk.cmake @@ -1,10 +1,11 @@ +# Returns Windows SDK number via out variable "ret" function(vcpkg_get_windows_sdk ret) execute_process( COMMAND powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& {& '${VCPKG_ROOT_DIR}/scripts/getWindowsSDK.ps1'}" 2>&1 OUTPUT_VARIABLE WINDOWS_SDK RESULT_VARIABLE error_code) - if (${error_code}) + if (error_code) message(FATAL_ERROR "Could not find Windows SDK") endif() |
