From 49573e845b963114158aa057f2ee1b01c1c3ad27 Mon Sep 17 00:00:00 2001 From: Alexander Evgin Date: Mon, 9 Dec 2024 23:55:31 +0400 Subject: [PATCH] Add Cross.toml --- Cross.toml | 3 +++ scripts/cross/pre-build-script.sh | 41 +++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Cross.toml create mode 100644 scripts/cross/pre-build-script.sh diff --git a/Cross.toml b/Cross.toml new file mode 100644 index 0000000..22cd3de --- /dev/null +++ b/Cross.toml @@ -0,0 +1,3 @@ +[build] +pre-build = "./scripts/cross/pre-build-script.sh" +env.passthrough = ["BUF_CACHE_DIR=/tmp"] diff --git a/scripts/cross/pre-build-script.sh b/scripts/cross/pre-build-script.sh new file mode 100644 index 0000000..83ef970 --- /dev/null +++ b/scripts/cross/pre-build-script.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash + +set -eu + +TARGET=${1} + +BUF_VERSION=1.47.2 +PROTOC_VERSION=25.1 + +ARCH=$(echo "$TARGET" | cut -d "-" -f 1) + +echo "ARCH=$ARCH" + +PROTOC_ARCH=$ARCH + +if [ $ARCH = "aarch64" ]; then + # For some reason protobuf is using this weird naming for ARM + PROTOC_ARCH=aarch_64 +fi + +echo "PROTOC_ARCH=$PROTOC_ARCH" + +export DEBIAN_FRONTEND=noninteractive + +dpkg --add-architecture $CROSS_DEB_ARCH + +apt-get update +apt-get install -y \ + openssl:$CROSS_DEB_ARCH \ + ca-certificates:$CROSS_DEB_ARCH \ + pkg-config:$CROSS_DEB_ARCH \ + cmake:$CROSS_DEB_ARCH \ + libssl-dev:$CROSS_DEB_ARCH \ + curl:$CROSS_DEB_ARCH \ + unzip:$CROSS_DEB_ARCH + +curl -sSL -o /usr/local/bin/buf "https://github.com/bufbuild/buf/releases/download/v${BUF_VERSION}/buf-Linux-${ARCH}" +chmod +x /usr/local/bin/buf + +curl -sSL -o /tmp/protoc.zip "https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-${PROTOC_ARCH}.zip" +unzip /tmp/protoc.zip -d /usr/local