aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 03:08:27 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-09-22 03:08:27 -0700
commit764afd8619f6d236fa56b77de9793120a25c4fb9 (patch)
tree2a2d94c67748ce8e5a090169036ee029b8422d9b /scripts
parent23a45e7db6fe997add43aeb4f3716e3083704e2a (diff)
downloadvcpkg-764afd8619f6d236fa56b77de9793120a25c4fb9.tar.gz
vcpkg-764afd8619f6d236fa56b77de9793120a25c4fb9.zip
CMake now automatically detects the root directory via .vcpkg-root
Diffstat (limited to 'scripts')
-rw-r--r--scripts/ports.cmake14
1 files changed, 13 insertions, 1 deletions
diff --git a/scripts/ports.cmake b/scripts/ports.cmake
index 51afc8d61..6a744a0b6 100644
--- a/scripts/ports.cmake
+++ b/scripts/ports.cmake
@@ -1,5 +1,17 @@
cmake_minimum_required(VERSION 3.5)
-get_filename_component(VCPKG_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR} DIRECTORY)
+
+#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})
string(REGEX REPLACE "([^-]*)-([^-]*)" "\\1" TRIPLET_SYSTEM_ARCH ${TARGET_TRIPLET})
string(REGEX REPLACE "([^-]*)-([^-]*)" "\\2" TRIPLET_SYSTEM_NAME ${TARGET_TRIPLET})