mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-27 22:39:01 +08:00
vcpkg: initial ARM64 support
This commit is contained in:
parent
7cd465b889
commit
00d89dbd66
@ -78,14 +78,20 @@ function(vcpkg_configure_cmake)
|
||||
set(GENERATOR "Visual Studio 15 2017")
|
||||
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
set(GENERATOR "Visual Studio 15 2017 Win64")
|
||||
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
set(GENERATOR "Visual Studio 15 2017 ARM")
|
||||
elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" AND TRIPLET_SYSTEM_ARCH STREQUAL "arm64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
set(GENERATOR "Visual Studio 15 2017")
|
||||
set(ARCH "ARM64")
|
||||
elseif(TRIPLET_SYSTEM_ARCH MATCHES "x86" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
set(GENERATOR "Visual Studio 15 2017")
|
||||
elseif(TRIPLET_SYSTEM_ARCH MATCHES "x64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
set(GENERATOR "Visual Studio 15 2017 Win64")
|
||||
elseif(TRIPLET_SYSTEM_ARCH MATCHES "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
elseif(TRIPLET_SYSTEM_ARCH STREQUAL "arm" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
set(GENERATOR "Visual Studio 15 2017 ARM")
|
||||
elseif(TRIPLET_SYSTEM_ARCH STREQUAL "arm64" AND VCPKG_PLATFORM_TOOLSET MATCHES "v141")
|
||||
set(GENERATOR "Visual Studio 15 2017")
|
||||
set(ARCH "ARM64")
|
||||
endif()
|
||||
|
||||
# If we use Ninja, make sure it's on PATH
|
||||
@ -139,6 +145,12 @@ function(vcpkg_configure_cmake)
|
||||
"-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON"
|
||||
)
|
||||
|
||||
if(DEFINED ARCH)
|
||||
list(APPEND _csc_OPTIONS
|
||||
"-A${ARCH}"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(DEFINED VCPKG_CRT_LINKAGE AND VCPKG_CRT_LINKAGE STREQUAL dynamic)
|
||||
list(APPEND _csc_OPTIONS_DEBUG
|
||||
"-DCMAKE_CXX_FLAGS_DEBUG=/D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1 ${VCPKG_CXX_FLAGS_DEBUG}"
|
||||
|
@ -361,6 +361,7 @@ namespace vcpkg::PostBuildLint
|
||||
case MachineType::I386: return "x86";
|
||||
case MachineType::ARM:
|
||||
case MachineType::ARMNT: return "arm";
|
||||
case MachineType::ARM64: return "arm64";
|
||||
default: return "Machine Type Code = " + std::to_string(static_cast<uint16_t>(machine_type));
|
||||
}
|
||||
}
|
||||
|
@ -370,10 +370,14 @@ namespace vcpkg
|
||||
supported_architectures.push_back({L"x86_amd64", CPU::X86, CPU::X64});
|
||||
if (fs.exists(vcvarsall_dir / "vcvarsx86_arm.bat"))
|
||||
supported_architectures.push_back({L"x86_arm", CPU::X86, CPU::ARM});
|
||||
if (fs.exists(vcvarsall_dir / "vcvarsx86_arm64.bat"))
|
||||
supported_architectures.push_back({L"x86_arm64", CPU::X86, CPU::ARM64});
|
||||
if (fs.exists(vcvarsall_dir / "vcvarsamd64_x86.bat"))
|
||||
supported_architectures.push_back({L"amd64_x86", CPU::X64, CPU::X86});
|
||||
if (fs.exists(vcvarsall_dir / "vcvarsamd64_arm.bat"))
|
||||
supported_architectures.push_back({L"amd64_arm", CPU::X64, CPU::ARM});
|
||||
if (fs.exists(vcvarsall_dir / "vcvarsamd64_arm64.bat"))
|
||||
supported_architectures.push_back({L"amd64_arm64", CPU::X64, CPU::ARM64});
|
||||
|
||||
// Locate the "best" MSVC toolchain version
|
||||
const fs::path msvc_path = vc_dir / "Tools" / "MSVC";
|
||||
|
6
triplets/arm64-uwp.cmake
Normal file
6
triplets/arm64-uwp.cmake
Normal file
@ -0,0 +1,6 @@
|
||||
set(VCPKG_TARGET_ARCHITECTURE arm64)
|
||||
set(VCPKG_CRT_LINKAGE dynamic)
|
||||
set(VCPKG_LIBRARY_LINKAGE dynamic)
|
||||
|
||||
set(VCPKG_CMAKE_SYSTEM_NAME WindowsStore)
|
||||
set(VCPKG_CMAKE_SYSTEM_VERSION 10.0)
|
Loading…
Reference in New Issue
Block a user