From 295963d5513642d94511fae10081f0acea508db5 Mon Sep 17 00:00:00 2001 From: Rusty Conover Date: Tue, 2 Jul 2024 10:53:06 -0400 Subject: [PATCH] fix: try to set cargo target for CI --- CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index fddbb40..340c0b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,45 @@ set(CORROSION_VERBOSE_OUTPUT ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED 1) + + +# Propagate arch to rust build for CI +set(Rust_CARGO_TARGET "") +if("${OS_NAME}" STREQUAL "linux") + if ("${OS_ARCH}" STREQUAL "arm64") + set(Rust_CARGO_TARGET "aarch64-unknown-linux-gnu") + elseif("${CMAKE_CXX_COMPILER}" MATCHES "aarch64") + set(Rust_CARGO_TARGET ${RUST_ENV_VARS} CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc) + set(Rust_CARGO_TARGET "aarch64-unknown-linux-gnu") + else() + set(Rust_CARGO_TARGET "x86_64-unknown-linux-gnu") + endif() +elseif("${OS_NAME}" STREQUAL "osx") + if ("${OSX_BUILD_ARCH}" STREQUAL "arm64") + set(Rust_CARGO_TARGET "aarch64-apple-darwin") + elseif ("${OSX_BUILD_ARCH}" STREQUAL "x86_64") + set(Rust_CARGO_TARGET "x86_64-apple-darwin") + elseif ("${OS_ARCH}" STREQUAL "arm64") + set(Rust_CARGO_TARGET "aarch64-apple-darwin") + endif() +elseif(WIN32) + if (MINGW AND "${OS_ARCH}" STREQUAL "arm64") + set(Rust_CARGO_TARGET "aarch64-pc-windows-gnu") + elseif (MINGW AND "${OS_ARCH}" STREQUAL "amd64") + set(Rust_CARGO_TARGET "x86_64-pc-windows-gnu") + elseif (MSVC AND "${OS_ARCH}" STREQUAL "arm64") + set(Rust_CARGO_TARGET "aarch64-pc-windows-msvc") + elseif (MSVC AND "${OS_ARCH}" STREQUAL "amd64") + set(Rust_CARGO_TARGET "x86_64-pc-windows-msvc") + endif() +endif() + +# We currently only support the predefined targets. +if ("${Rust_CARGO_TARGET}" STREQUAL "") + message(FATAL_ERROR "Failed to detect the correct platform") +endif() + + include(FetchContent) FetchContent_Declare(