-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
ca12ec7
commit 00e992c
Showing
26 changed files
with
1,455 additions
and
38 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# syntax=docker/dockerfile:1 | ||
ARG DEBIAN_VERSION=12-slim | ||
FROM debian:$DEBIAN_VERSION | ||
|
||
# Build Args | ||
ARG EXT_CURL_CMD="curl --retry 3 -fsSL --tlsv1.2" | ||
ARG TARGETARCH | ||
|
||
# Versioning | ||
ARG CMAKE_VERSION=3.31.2 | ||
ENV CMAKE_VERSION=${CMAKE_VERSION} | ||
|
||
# Do not set | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
ENV RUSTUP_HOME=/usr/local/rustup \ | ||
CARGO_HOME=/usr/local/cargo \ | ||
PATH=/usr/local/cargo/bin:$PATH \ | ||
CARGO_TERM_COLOR=always | ||
|
||
# Copy required scripts and Dockerfile | ||
COPY ./scripts/base/step0 /ink/scripts/base/step0 | ||
COPY ./docker/base/step0.Dockerfile /ink/dockerfiles | ||
|
||
# Upgrade and install apt packages | ||
RUN /ink/scripts/base/step0/manage-apt.sh | ||
|
||
# Install cmake | ||
RUN /ink/scripts/base/step0/install-cmake.sh | ||
COPY ./cmake/toolchain-gcc.cmake /opt/toolchain.cmake | ||
|
||
# Cargo prebuilt | ||
RUN /ink/scripts/base/step0/install-cargo-prebuilt.sh | ||
|
||
WORKDIR /project | ||
ENTRYPOINT [ "/entrypoint.sh" ] | ||
CMD [ "auditable", "build" ] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# syntax=docker/dockerfile:1 | ||
ARG IMG_BASE=ghcr.io/cargo-prebuilt/ink-cross:base-step0 | ||
FROM ${IMG_BASE} | ||
|
||
# Build Args | ||
ARG EXT_CURL_CMD="curl --retry 3 -fsSL --tlsv1.2" | ||
ARG TARGETARCH | ||
|
||
# Versioning | ||
ARG RUST_VERSION=stable | ||
ENV RUST_VERSION=${RUST_VERSION} | ||
|
||
# Copy required scripts and Dockerfile | ||
COPY ./scripts/base/step1 /ink/scripts/base/step1 | ||
COPY ./docker/base/step1.Dockerfile /ink/dockerfiles | ||
|
||
# Install rust toolchain | ||
RUN /ink/scripts/base/step1/install-rustup.sh | ||
|
||
# Create Entrypoint | ||
RUN /ink/scripts/base/step1/entrypoint.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# syntax=docker/dockerfile:1 | ||
ARG IMG_BASE=ghcr.io/cargo-prebuilt/ink-cross:base-step1-stable | ||
FROM ${IMG_BASE} | ||
|
||
# Build Args | ||
ARG EXT_CURL_CMD="curl --retry 3 -fsSL --tlsv1.2" | ||
ARG TARGETARCH | ||
|
||
# Versioning | ||
ARG LLVM_VERSION=19 | ||
ENV LLVM_VERSION=${LLVM_VERSION} | ||
|
||
# Copy required scripts and Dockerfile | ||
COPY ./scripts/base/step2-clang /ink/scripts/base/step2-clang | ||
COPY ./docker/base/step2-clang.Dockerfile /ink/dockerfiles | ||
|
||
# Override gnu cmake toolchain | ||
COPY ./cmake/toolchain-clang.cmake /opt/toolchain.cmake | ||
|
||
# Install clang | ||
RUN /ink/scripts/base/step2-clang/install-clang.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# syntax=docker/dockerfile:1 | ||
ARG IMG_BASE=ghcr.io/cargo-prebuilt/ink-cross:base-step2-clang-nightly | ||
FROM ${IMG_BASE} | ||
|
||
################################ | ||
# This target is nightly ONLY! # | ||
################################ | ||
|
||
# Build CMDS | ||
ARG EXT_CURL_CMD="curl --retry 3 -fsSL --tlsv1.2" | ||
ARG TARGETARCH | ||
|
||
# Versioning | ||
ARG OPENSSL_VERSION=openssl-3.4.0 | ||
ARG FREEBSD_MAJOR=13 | ||
|
||
ARG RUST_TARGET=aarch64-unknown-freebsd | ||
ARG FREEBSD_ARCH=arm64 | ||
|
||
ARG CROSS_TOOLCHAIN=aarch64-unknown-freebsd${FREEBSD_MAJOR} | ||
ARG CROSS_TOOLCHAIN_PREFIX=${CROSS_TOOLCHAIN}- | ||
ARG CROSS_SYSROOT=/usr/${CROSS_TOOLCHAIN} | ||
|
||
ARG OPENSSL_COMBO=BSD-generic64 | ||
|
||
ARG LLVM_TARGET=$RUST_TARGET | ||
|
||
# Copy required scripts and Dockerfile | ||
COPY ./scripts/target/clang /ink/scripts/target/clang | ||
COPY ./scripts/target/bsd/freebsd /ink/scripts/target/bsd/freebsd | ||
COPY ./docker/target/clang/$RUST_TARGET.Dockerfile /ink/dockerfiles | ||
|
||
# Setup clang | ||
ENV PATH=$PATH:$CROSS_SYSROOT/usr/bin | ||
RUN /ink/scripts/target/clang/setup-clang.sh | ||
|
||
# Install freebsd | ||
RUN /ink/scripts/target/bsd/freebsd/extract-freebsd-sysroot.sh | ||
|
||
# Openssl | ||
ENV OPENSSL_DIR=$CROSS_SYSROOT/usr | ||
RUN /ink/scripts/target/clang/install-openssl-clang.sh | ||
|
||
# Install rust target | ||
ENV RUST_TARGET=$RUST_TARGET | ||
# RUN rustup target add "$RUST_TARGET" | ||
|
||
ENV CROSS_TOOLCHAIN_PREFIX=$CROSS_TOOLCHAIN_PREFIX | ||
ENV CROSS_SYSROOT=$CROSS_SYSROOT | ||
ENV CARGO_TARGET_AARCH64_UNKNOWN_FREEBSD_LINKER="${CROSS_TOOLCHAIN_PREFIX}clang" \ | ||
CARGO_BUILD_TARGET=$RUST_TARGET \ | ||
AR_aarch64_unknown_freebsd="${CROSS_TOOLCHAIN_PREFIX}ar" \ | ||
CC_aarch64_unknown_freebsd="${CROSS_TOOLCHAIN_PREFIX}clang" \ | ||
CXX_aarch64_unknown_freebsd="${CROSS_TOOLCHAIN_PREFIX}clang++" \ | ||
CMAKE_TOOLCHAIN_FILE_aarch64_unknown_freebsd=/opt/toolchain.cmake \ | ||
BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_freebsd="--sysroot=$CROSS_SYSROOT" \ | ||
RUST_TEST_THREADS=1 \ | ||
PKG_CONFIG_ALLOW_CROSS_aarch64_unknown_freebsd=true \ | ||
PKG_CONFIG_PATH="/usr/$CROSS_TOOLCHAIN/usr/lib/pkgconfig/:/usr/local/$CROSS_TOOLCHAIN/lib/pkgconfig/:/usr/lib/$CROSS_TOOLCHAIN/pkgconfig/" \ | ||
PKG_CONFIG_ALLOW_CROSS=1 \ | ||
CROSS_CMAKE_SYSTEM_NAME=FreeBSD \ | ||
CROSS_CMAKE_SYSTEM_PROCESSOR=arm64 \ | ||
CROSS_CMAKE_CRT=freebsd \ | ||
CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# syntax=docker/dockerfile:1 | ||
ARG IMG_BASE=ghcr.io/cargo-prebuilt/ink-cross:base-step2-clang-stable | ||
FROM ${IMG_BASE} | ||
|
||
# Build CMDS | ||
ARG EXT_CURL_CMD="curl --retry 3 -fsSL --tlsv1.2" | ||
ARG TARGETARCH | ||
|
||
# Versioning | ||
ARG OPENSSL_VERSION=openssl-3.4.0 | ||
ARG FREEBSD_MAJOR=13 | ||
|
||
ARG RUST_TARGET=x86_64-unknown-freebsd | ||
ARG FREEBSD_ARCH=amd64 | ||
|
||
ARG CROSS_TOOLCHAIN=x86_64-unknown-freebsd${FREEBSD_MAJOR} | ||
ARG CROSS_TOOLCHAIN_PREFIX=${CROSS_TOOLCHAIN}- | ||
ARG CROSS_SYSROOT=/usr/${CROSS_TOOLCHAIN} | ||
|
||
ARG OPENSSL_COMBO=BSD-x86_64 | ||
|
||
ARG LLVM_TARGET=$RUST_TARGET | ||
|
||
# Copy required scripts and Dockerfile | ||
COPY ./scripts/target/clang /ink/scripts/target/clang | ||
COPY ./scripts/target/bsd/freebsd /ink/scripts/target/bsd/freebsd | ||
COPY ./docker/target/clang/$RUST_TARGET.Dockerfile /ink/dockerfiles | ||
|
||
# Setup clang | ||
ENV PATH=$PATH:$CROSS_SYSROOT/usr/bin | ||
RUN /ink/scripts/target/clang/setup-clang.sh | ||
|
||
# Install freebsd | ||
RUN /ink/scripts/target/bsd/freebsd/extract-freebsd-sysroot.sh | ||
|
||
# Openssl | ||
ENV OPENSSL_DIR=$CROSS_SYSROOT/usr | ||
RUN /ink/scripts/target/clang/install-openssl-clang.sh | ||
|
||
# Install rust target | ||
ENV RUST_TARGET=$RUST_TARGET | ||
RUN rustup target add "$RUST_TARGET" | ||
|
||
ENV CROSS_TOOLCHAIN_PREFIX=$CROSS_TOOLCHAIN_PREFIX | ||
ENV CROSS_SYSROOT=$CROSS_SYSROOT | ||
ENV CARGO_TARGET_X86_64_UNKNOWN_FREEBSD_LINKER="${CROSS_TOOLCHAIN_PREFIX}clang" \ | ||
CARGO_BUILD_TARGET=$RUST_TARGET \ | ||
AR_x86_64_unknown_freebsd="${CROSS_TOOLCHAIN_PREFIX}ar" \ | ||
CC_x86_64_unknown_freebsd="${CROSS_TOOLCHAIN_PREFIX}clang" \ | ||
CXX_x86_64_unknown_freebsd="${CROSS_TOOLCHAIN_PREFIX}clang++" \ | ||
CMAKE_TOOLCHAIN_FILE_x86_64_unknown_freebsd=/opt/toolchain.cmake \ | ||
BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_freebsd="--sysroot=$CROSS_SYSROOT" \ | ||
RUST_TEST_THREADS=1 \ | ||
PKG_CONFIG_ALLOW_CROSS_x86_64_unknown_freebsd=true \ | ||
PKG_CONFIG_PATH="/usr/$CROSS_TOOLCHAIN/usr/lib/pkgconfig/:/usr/local/$CROSS_TOOLCHAIN/lib/pkgconfig/:/usr/lib/$CROSS_TOOLCHAIN/pkgconfig/" \ | ||
PKG_CONFIG_ALLOW_CROSS=1 \ | ||
CROSS_CMAKE_SYSTEM_NAME=FreeBSD \ | ||
CROSS_CMAKE_SYSTEM_PROCESSOR=amd64 \ | ||
CROSS_CMAKE_CRT=freebsd \ | ||
CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
# syntax=docker/dockerfile:1 | ||
ARG IMG_BASE=ghcr.io/cargo-prebuilt/ink-cross:base-step2-clang-stable | ||
FROM ${IMG_BASE} | ||
|
||
# Build CMDS | ||
ARG EXT_CURL_CMD="curl --retry 3 -fsSL --tlsv1.2" | ||
ARG TARGETARCH | ||
|
||
# Versioning | ||
ARG OPENSSL_VERSION=openssl-3.4.0 | ||
ARG NETBSD_MAJOR=10 | ||
|
||
ARG RUST_TARGET=x86_64-unknown-netbsd | ||
ARG NETBSD_ARCH=amd64 | ||
|
||
ARG CROSS_TOOLCHAIN=x86_64-unknown-netbsd${NETBSD_MAJOR} | ||
ARG CROSS_TOOLCHAIN_PREFIX=${CROSS_TOOLCHAIN}- | ||
ARG CROSS_SYSROOT=/usr/${CROSS_TOOLCHAIN} | ||
|
||
ARG OPENSSL_COMBO=BSD-x86_64 | ||
|
||
ARG LLVM_TARGET=$RUST_TARGET | ||
|
||
# Copy required scripts and Dockerfile | ||
COPY ./scripts/target/clang /ink/scripts/target/clang | ||
COPY ./scripts/target/bsd/netbsd /ink/scripts/target/bsd/netbsd | ||
COPY ./docker/target/clang/$RUST_TARGET.Dockerfile /ink/dockerfiles | ||
|
||
# Setup clang | ||
ENV PATH=$PATH:$CROSS_SYSROOT/usr/bin | ||
RUN /ink/scripts/target/clang/setup-clang.sh | ||
|
||
# Install freebsd | ||
RUN /ink/scripts/target/bsd/netbsd/extract-netbsd-sysroot.sh | ||
|
||
# Openssl | ||
ENV OPENSSL_DIR=$CROSS_SYSROOT/usr | ||
RUN /ink/scripts/target/clang/install-openssl-clang.sh | ||
|
||
# Install rust target | ||
ENV RUST_TARGET=$RUST_TARGET | ||
RUN rustup target add "$RUST_TARGET" | ||
|
||
ENV CROSS_TOOLCHAIN_PREFIX=$CROSS_TOOLCHAIN_PREFIX | ||
ENV CROSS_SYSROOT=$CROSS_SYSROOT | ||
ENV CARGO_TARGET_X86_64_UNKNOWN_NETBSD_LINKER="${CROSS_TOOLCHAIN_PREFIX}clang" \ | ||
CARGO_BUILD_TARGET=$RUST_TARGET \ | ||
AR_x86_64_unknown_netbsd="${CROSS_TOOLCHAIN_PREFIX}ar" \ | ||
CC_x86_64_unknown_netbsd="${CROSS_TOOLCHAIN_PREFIX}clang" \ | ||
CXX_x86_64_unknown_netbsd="${CROSS_TOOLCHAIN_PREFIX}clang++" \ | ||
CMAKE_TOOLCHAIN_FILE_x86_64_unknown_netbsd=/opt/toolchain.cmake \ | ||
BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_netbsd="--sysroot=$CROSS_SYSROOT" \ | ||
RUST_TEST_THREADS=1 \ | ||
PKG_CONFIG_ALLOW_CROSS_x86_64_unknown_netbsd=true \ | ||
PKG_CONFIG_PATH="/usr/$CROSS_TOOLCHAIN/usr/lib/pkgconfig/:/usr/local/$CROSS_TOOLCHAIN/lib/pkgconfig/:/usr/lib/$CROSS_TOOLCHAIN/pkgconfig/" \ | ||
PKG_CONFIG_ALLOW_CROSS=1 \ | ||
CROSS_CMAKE_SYSTEM_NAME=NetBSD \ | ||
CROSS_CMAKE_SYSTEM_PROCESSOR=amd64 \ | ||
CROSS_CMAKE_CRT=netbsd \ | ||
CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# syntax=docker/dockerfile:1 | ||
ARG IMG_BASE=ghcr.io/cargo-prebuilt/ink-cross:base-step2-clang-nightly | ||
FROM ${IMG_BASE} | ||
|
||
################################ | ||
# This target is nightly ONLY! # | ||
################################ | ||
|
||
# Build CMDS | ||
ARG EXT_CURL_CMD="curl --retry 3 -fsSL --tlsv1.2" | ||
ARG TARGETARCH | ||
|
||
# Versioning | ||
ARG OPENSSL_VERSION=openssl-3.4.0 | ||
# Bypass openbsd cdn listing a release that is not out. (#36) | ||
ARG OPENBSD_MAJOR=7.6 | ||
|
||
ARG RUST_TARGET=x86_64-unknown-openbsd | ||
ARG OPENBSD_ARCH=amd64 | ||
|
||
ARG CROSS_TOOLCHAIN=x86_64-unknown-openbsd${OPENBSD_MAJOR} | ||
ARG CROSS_TOOLCHAIN_PREFIX=${CROSS_TOOLCHAIN}- | ||
ARG CROSS_SYSROOT=/usr/${CROSS_TOOLCHAIN} | ||
|
||
ARG OPENSSL_COMBO=BSD-x86_64 | ||
|
||
ARG LLVM_TARGET=$RUST_TARGET | ||
|
||
# Copy required scripts and Dockerfile | ||
COPY ./scripts/target/clang /ink/scripts/target/clang | ||
COPY ./scripts/target/bsd/openbsd /ink/scripts/target/bsd/openbsd | ||
COPY ./scripts/target/musl /ink/scripts/target/musl | ||
COPY ./docker/target/clang/$RUST_TARGET.Dockerfile /ink/dockerfiles | ||
|
||
# Setup clang | ||
ENV PATH=$PATH:$CROSS_SYSROOT/usr/bin | ||
RUN /ink/scripts/target/clang/setup-clang.sh | ||
|
||
# Install freebsd | ||
RUN /ink/scripts/target/bsd/openbsd/extract-openbsd-sysroot.sh | ||
|
||
# Openssl | ||
ENV OPENSSL_DIR=$CROSS_SYSROOT/usr | ||
RUN /ink/scripts/target/musl/install-openssl-musl.sh | ||
|
||
# Install rust target | ||
ENV RUST_TARGET=$RUST_TARGET | ||
# RUN rustup target add "$RUST_TARGET" | ||
|
||
ENV CROSS_TOOLCHAIN_PREFIX=$CROSS_TOOLCHAIN_PREFIX | ||
ENV CROSS_SYSROOT=$CROSS_SYSROOT | ||
ENV CARGO_TARGET_X86_64_UNKNOWN_OPENBSD_LINKER=${CROSS_TOOLCHAIN_PREFIX}clang \ | ||
CARGO_BUILD_TARGET=$RUST_TARGET \ | ||
AR_x86_64_unknown_openbsd="${CROSS_TOOLCHAIN_PREFIX}ar" \ | ||
CC_x86_64_unknown_openbsd="${CROSS_TOOLCHAIN_PREFIX}clang" \ | ||
CXX_x86_64_unknown_openbsd="${CROSS_TOOLCHAIN_PREFIX}clang++" \ | ||
CMAKE_TOOLCHAIN_FILE_x86_64_unknown_openbsd=/opt/toolchain.cmake \ | ||
BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_openbsd="--sysroot=$CROSS_SYSROOT" \ | ||
RUST_TEST_THREADS=1 \ | ||
PKG_CONFIG_ALLOW_CROSS_x86_64_unknown_openbsd=true \ | ||
PKG_CONFIG_PATH="/usr/$CROSS_TOOLCHAIN/usr/lib/pkgconfig/:/usr/local/$CROSS_TOOLCHAIN/lib/pkgconfig/:/usr/lib/$CROSS_TOOLCHAIN/pkgconfig/" \ | ||
PKG_CONFIG_ALLOW_CROSS=1 \ | ||
CROSS_CMAKE_SYSTEM_NAME=OpenBSD \ | ||
CROSS_CMAKE_SYSTEM_PROCESSOR=amd64 \ | ||
CROSS_CMAKE_CRT=openbsd \ | ||
CROSS_CMAKE_OBJECT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
platforms := 'linux/arm64' | ||
rust_version := 'stable' | ||
|
||
default: | ||
just -l | ||
|
||
step0: | ||
docker buildx build \ | ||
--platform={{ platforms }} \ | ||
-t ink:step0 \ | ||
-f docker/base/step0.Dockerfile \ | ||
. | ||
|
||
step1: step0 | ||
docker buildx build \ | ||
--platform={{ platforms }} \ | ||
-t ink:step1-{{ rust_version }} \ | ||
-f docker/base/step1.Dockerfile \ | ||
--build-arg IMG_BASE=ink:step0 \ | ||
--build-arg RUST_VERSION={{ rust_version }} \ | ||
. | ||
|
||
step2-clang: step1 | ||
docker buildx build \ | ||
--platform={{ platforms }} \ | ||
-t ink:step2-clang-{{ rust_version }} \ | ||
-f docker/base/step2-clang.Dockerfile \ | ||
--build-arg IMG_BASE=ink:step1-{{ rust_version }} \ | ||
. | ||
|
||
target-gnu TARGET: step1 | ||
docker buildx build \ | ||
--platform={{ platforms }} \ | ||
-t ink:{{ rust_version }}-{{ TARGET }} \ | ||
-f docker/target/gnu/{{ TARGET }}.Dockerfile \ | ||
--build-arg IMG_BASE=ink:step1-{{ rust_version }} \ | ||
. | ||
|
||
target-clang TARGET: step2-clang | ||
docker buildx build \ | ||
--platform={{ platforms }} \ | ||
-t ink:{{ rust_version }}-{{ TARGET }} \ | ||
-f docker/target/clang/{{ TARGET }}.Dockerfile \ | ||
--build-arg IMG_BASE=ink:step2-clang-{{ rust_version }} \ | ||
. |
Oops, something went wrong.