aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-03-21 15:48:29 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-03-21 17:02:18 -0700
commit85169faaeaf93d5e88348d2e241272a5063debff (patch)
treeb6dc7d95a45e72e9a465854e2ea7a2942335bd14 /scripts
parentb01e4cb5516c42842c428d44e388a223b9e0974c (diff)
downloadvcpkg-85169faaeaf93d5e88348d2e241272a5063debff.tar.gz
vcpkg-85169faaeaf93d5e88348d2e241272a5063debff.zip
[vcpkg-toolchain] Automatically detect Windows SDK version.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/buildsystems/vcpkg.cmake12
-rw-r--r--scripts/cmake/vcpkg_get_windows_sdk.cmake3
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()