aboutsummaryrefslogtreecommitdiff
path: root/scripts/buildsystems
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-04-20 16:19:39 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2017-04-20 16:19:39 -0700
commit4d850d153a2253fa54308b2f9128b07f2db9428a (patch)
tree2d1f1d3c38181e75ec6caec2c79341746a822d60 /scripts/buildsystems
parentaf369015363cdf961f38abe620bcda20d7aba1f6 (diff)
downloadvcpkg-4d850d153a2253fa54308b2f9128b07f2db9428a.tar.gz
vcpkg-4d850d153a2253fa54308b2f9128b07f2db9428a.zip
[vcpkg.cmake] Detect .vcpkg-root
Diffstat (limited to 'scripts/buildsystems')
-rw-r--r--scripts/buildsystems/vcpkg.cmake14
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake
index 63fcb98e4..857e643b3 100644
--- a/scripts/buildsystems/vcpkg.cmake
+++ b/scripts/buildsystems/vcpkg.cmake
@@ -40,7 +40,19 @@ if(NOT VCPKG_TOOLCHAIN)
set(VCPKG_TARGET_TRIPLET ${_VCPKG_TARGET_TRIPLET_ARCH}-${_VCPKG_TARGET_TRIPLET_PLAT} CACHE STRING "Vcpkg target triplet (ex. x86-windows)")
set(_VCPKG_TOOLCHAIN_DIR ${CMAKE_CURRENT_LIST_DIR})
- get_filename_component(_VCPKG_ROOT_DIR ${_VCPKG_TOOLCHAIN_DIR}/../.. ABSOLUTE)
+
+ #Detect .vcpkg-root to figure VCPKG_ROOT_DIR
+ SET(_VCPKG_ROOT_DIR_CANDIDATE ${CMAKE_CURRENT_LIST_DIR})
+ while(IS_DIRECTORY ${_VCPKG_ROOT_DIR_CANDIDATE} AND NOT EXISTS "${_VCPKG_ROOT_DIR_CANDIDATE}/.vcpkg-root")
+ get_filename_component(_VCPKG_ROOT_DIR_TEMP ${_VCPKG_ROOT_DIR_CANDIDATE} DIRECTORY)
+ if (_VCPKG_ROOT_DIR_TEMP STREQUAL _VCPKG_ROOT_DIR_CANDIDATE) # If unchanged, we have reached the root of the drive
+ message(FATAL_ERROR "Could not find .vcpkg-root")
+ else()
+ SET(_VCPKG_ROOT_DIR_CANDIDATE ${_VCPKG_ROOT_DIR_TEMP})
+ endif()
+ endwhile()
+ set(_VCPKG_ROOT_DIR ${_VCPKG_ROOT_DIR_CANDIDATE})
+
set(_VCPKG_INSTALLED_DIR ${_VCPKG_ROOT_DIR}/installed)
if(CMAKE_BUILD_TYPE MATCHES "^Debug$" OR NOT DEFINED CMAKE_BUILD_TYPE)