diff options
| author | Andrei Lebedev <lebdron@gmail.com> | 2020-07-23 23:16:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-23 14:16:01 -0700 |
| commit | 077c0746be3773fdd443af52cbe5c3cc26379a15 (patch) | |
| tree | d40ab5c6c10906a572d34a8cdb65967b89ead0b2 | |
| parent | 0896cfcc301843b455bf14497a15b0e775735198 (diff) | |
| download | vcpkg-077c0746be3773fdd443af52cbe5c3cc26379a15.tar.gz vcpkg-077c0746be3773fdd443af52cbe5c3cc26379a15.zip | |
[vcpkg] Add initial s390x support (#12534)
Signed-off-by: Andrei Lebedev <lebdron@gmail.com>
| -rw-r--r-- | scripts/buildsystems/vcpkg.cmake | 2 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg/base/system.h | 1 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/base/system.cpp | 4 | ||||
| -rw-r--r-- | triplets/community/s390x-linux.cmake | 5 |
4 files changed, 12 insertions, 0 deletions
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 4ee79d179..b0b4cde3e 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -151,6 +151,8 @@ else() endif() elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64") set(_VCPKG_TARGET_TRIPLET_ARCH x64) + elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "s390x") + set(_VCPKG_TARGET_TRIPLET_ARCH s390x) else() if( _CMAKE_IN_TRY_COMPILE ) message(STATUS "Unable to determine target architecture, continuing without vcpkg.") diff --git a/toolsrc/include/vcpkg/base/system.h b/toolsrc/include/vcpkg/base/system.h index 0a2e745c4..2340728fd 100644 --- a/toolsrc/include/vcpkg/base/system.h +++ b/toolsrc/include/vcpkg/base/system.h @@ -25,6 +25,7 @@ namespace vcpkg::System X64, ARM, ARM64, + S390X, }; Optional<CPUArchitecture> to_cpu_architecture(StringView arch); diff --git a/toolsrc/src/vcpkg/base/system.cpp b/toolsrc/src/vcpkg/base/system.cpp index 63674963e..82e5f914c 100644 --- a/toolsrc/src/vcpkg/base/system.cpp +++ b/toolsrc/src/vcpkg/base/system.cpp @@ -19,6 +19,7 @@ namespace vcpkg if (Strings::case_insensitive_ascii_equals(arch, "amd64")) return CPUArchitecture::X64; if (Strings::case_insensitive_ascii_equals(arch, "arm")) return CPUArchitecture::ARM; if (Strings::case_insensitive_ascii_equals(arch, "arm64")) return CPUArchitecture::ARM64; + if (Strings::case_insensitive_ascii_equals(arch, "s390x")) return CPUArchitecture::S390X; return nullopt; } @@ -30,6 +31,7 @@ namespace vcpkg case CPUArchitecture::X64: return "x64"; case CPUArchitecture::ARM: return "arm"; case CPUArchitecture::ARM64: return "arm64"; + case CPUArchitecture::S390X: return "s390x"; default: Checks::exit_with_message(VCPKG_LINE_INFO, "unexpected vcpkg::System::CPUArchitecture"); } } @@ -51,6 +53,8 @@ namespace vcpkg return CPUArchitecture::ARM; #elif defined(__aarch64__) || defined(_M_ARM64) return CPUArchitecture::ARM64; +#elif defined(__s390x__) + return CPUArchitecture::S390X; #else // choose architecture #error "Unknown host architecture" #endif // choose architecture diff --git a/triplets/community/s390x-linux.cmake b/triplets/community/s390x-linux.cmake new file mode 100644 index 000000000..0aaefda4e --- /dev/null +++ b/triplets/community/s390x-linux.cmake @@ -0,0 +1,5 @@ +set(VCPKG_TARGET_ARCHITECTURE s390x) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Linux) |
