diff options
| author | xyb <xyb@xyb.name> | 2020-10-30 12:15:40 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-30 12:15:40 -0700 |
| commit | 5e4d2fab8605a21972cb990ba49ade83ef19ffbf (patch) | |
| tree | 97fb60f207d5086428f51d99a85c0a74f8e87e1b /scripts/toolchains | |
| parent | 322efbb61760887eab5007ff14b00fc0d2aac4a5 (diff) | |
| download | vcpkg-5e4d2fab8605a21972cb990ba49ade83ef19ffbf.tar.gz vcpkg-5e4d2fab8605a21972cb990ba49ade83ef19ffbf.zip | |
[vcpkg] Support cross compile arm64-linux, arm-linux triplets on linux (#13374)
x86_64 host.
Diffstat (limited to 'scripts/toolchains')
| -rw-r--r-- | scripts/toolchains/linux.cmake | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/scripts/toolchains/linux.cmake b/scripts/toolchains/linux.cmake index 218db5a85..fb5666538 100644 --- a/scripts/toolchains/linux.cmake +++ b/scripts/toolchains/linux.cmake @@ -11,9 +11,27 @@ elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") string(APPEND VCPKG_C_FLAGS " -m32")
string(APPEND VCPKG_CXX_FLAGS " -m32")
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
- set(CMAKE_SYSTEM_PROCESSOR armv7l CACHE STRING "")
+ set(CMAKE_SYSTEM_PROCESSOR armv7l CACHE STRING "")
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ if(NOT DEFINED CMAKE_CXX_COMPILER)
+ set(CMAKE_CXX_COMPILER "arm-linux-gnueabihf-g++")
+ endif()
+ if(NOT DEFINED CMAKE_C_COMPILER)
+ set(CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc")
+ endif()
+ message(STATUS "Cross compiling arm on host x86_64, use cross compiler: ${CMAKE_CXX_COMPILER}/${CMAKE_C_COMPILER}")
+ endif()
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
- set(CMAKE_SYSTEM_PROCESSOR aarch64 CACHE STRING "")
+ set(CMAKE_SYSTEM_PROCESSOR aarch64 CACHE STRING "")
+ if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ if(NOT DEFINED CMAKE_CXX_COMPILER)
+ set(CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++")
+ endif()
+ if(NOT DEFINED CMAKE_C_COMPILER)
+ set(CMAKE_C_COMPILER "aarch64-linux-gnu-gcc")
+ endif()
+ message(STATUS "Cross compiling arm64 on host x86_64, use cross compiler: ${CMAKE_CXX_COMPILER}/${CMAKE_C_COMPILER}")
+ endif()
endif()
get_property( _CMAKE_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE )
|
