aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorTsukasa Sugiura <t.sugiura0204@gmail.com>2018-11-21 08:51:32 +0900
committerRobert Schumacher <roschuma@microsoft.com>2018-11-20 15:51:32 -0800
commit83af530a42011130b20a5080bbd298abaa77be59 (patch)
tree640a2c660bcf26643ac5c3a0a4291a9727999de4 /scripts
parent35ea46995b6a3b384b4a76d613ac29d7d001b51a (diff)
downloadvcpkg-83af530a42011130b20a5080bbd298abaa77be59.tar.gz
vcpkg-83af530a42011130b20a5080bbd298abaa77be59.zip
WIP [vcpkg] Fix CMAKE_SYSTEM_PROCESSOR with UWP and Linux triplets (#4688)
* [vcpkg] Fix CMAKE_SYSTEM_PROCESSOR Add CMAKE_SYSTEM_PROCESSOR setting under UWP, Linux, and Darwin. If explicitly specified VCPKG_CMAKE_SYSTEM_PROCESSOR in triplet files, CMAKE_SYSTEM_PROCESSOR is set to specified architecture. * [vcpkg-toolchains] Move logic out of vcpkg_configure_cmake and into the toolchains.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake8
-rw-r--r--scripts/toolchains/linux.cmake5
-rw-r--r--scripts/toolchains/windows.cmake16
3 files changed, 26 insertions, 3 deletions
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index 617fe1a0f..b5dfb6d02 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -128,13 +128,15 @@ function(vcpkg_configure_cmake)
if(DEFINED VCPKG_CMAKE_SYSTEM_NAME)
list(APPEND _csc_OPTIONS "-DCMAKE_SYSTEM_NAME=${VCPKG_CMAKE_SYSTEM_NAME}")
- if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND NOT DEFINED VCPKG_CMAKE_SYSTEM_VERSION)
- set(VCPKG_CMAKE_SYSTEM_VERSION 10.0)
- endif()
endif()
if(DEFINED VCPKG_CMAKE_SYSTEM_VERSION)
list(APPEND _csc_OPTIONS "-DCMAKE_SYSTEM_VERSION=${VCPKG_CMAKE_SYSTEM_VERSION}")
endif()
+ if(DEFINED VCPKG_CMAKE_SYSTEM_PROCESSOR)
+ list(APPEND _csc_OPTIONS "-DCMAKE_SYSTEM_PROCESSOR=${VCPKG_CMAKE_SYSTEM_PROCESSOR}")
+ endif()
+
+ list(APPEND _csc_OPTIONS "-DVCPKG_TARGET_ARCHITECTURE=${VCPKG_TARGET_ARCHITECTURE}")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
list(APPEND _csc_OPTIONS -DBUILD_SHARED_LIBS=ON)
diff --git a/scripts/toolchains/linux.cmake b/scripts/toolchains/linux.cmake
index ade9db90b..d740a5b8c 100644
--- a/scripts/toolchains/linux.cmake
+++ b/scripts/toolchains/linux.cmake
@@ -1,5 +1,10 @@
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
set(CMAKE_CROSSCOMPILING OFF CACHE BOOL "")
+
+ # TODO: This should be replaced with a switch on VCPKG_TARGET_ARCHITECTURE once we know what linux systems "natively" define for each of the targets
+ set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_HOST_SYSTEM_PROCESSOR}" CACHE STRING "")
+else()
+ set(CMAKE_SYSTEM_PROCESSOR "x86_64" CACHE STRING "")
endif()
set(CMAKE_SYSTEM_NAME Linux CACHE STRING "")
diff --git a/scripts/toolchains/windows.cmake b/scripts/toolchains/windows.cmake
index 266e023b1..bb52e0d19 100644
--- a/scripts/toolchains/windows.cmake
+++ b/scripts/toolchains/windows.cmake
@@ -1,3 +1,19 @@
+if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ set(CMAKE_SYSTEM_VERSION 10.0 CACHE STRING "")
+endif()
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(CMAKE_SYSTEM_PROCESSOR ARM CACHE STRING "")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ set(CMAKE_SYSTEM_PROCESSOR ARM64 CACHE STRING "")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(CMAKE_SYSTEM_PROCESSOR AMD64 CACHE STRING "")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(CMAKE_SYSTEM_PROCESSOR X86 CACHE STRING "")
+else()
+ message(FATAL_ERROR "Unknown target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
if(NOT _CMAKE_IN_TRY_COMPILE)