# Pre-build configuration (for bindgen to work) [build] pre-build = [ "apt-get update && (DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends libclang-18-dev clang-18 || DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10 || DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends libclang-3.9-dev clang-3.9)", # Install Clang headers "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable && . $HOME/.cargo/env && cargo install --force bindgen-cli && mv $HOME/.cargo/bin/bindgen /usr/bin && rm -rf $HOME/.cargo", # Install bindgen-cli ] # GNU/Linux targets (Cross "edge" images) [target.x86_64-unknown-linux-gnu] pre-build = [ "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends gcc-10 g++-10 gfortran-10 && apt-get install --assume-yes --no-install-recommends g++-10-x86-64-linux-gnu gcc-10-x86-64-linux-gnu || true", ] image = "ghcr.io/cross-rs/x86_64-unknown-linux-gnu:edge" [target.x86_64-unknown-linux-gnu.env] passthrough = [ "CC_x86_64_unknown_linux_gnu=x86_64-linux-gnu-gcc-10", # Use GCC 10 instead of GCC 9 for AWS LC to compile properly "CXX_x86_64_unknown_linux_gnu=x86_64-linux-gnu-g++-10", ] [target.i686-unknown-linux-gnu] image = "ghcr.io/cross-rs/i686-unknown-linux-gnu:edge" [target.aarch64-unknown-linux-gnu] pre-build = [ "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --no-install-recommends gcc-10 g++-10 gfortran-10 g++-10-aarch64-linux-gnu && apt-get install --assume-yes --no-install-recommends gcc-10-aarch64-linux-gnu || true", ] image = "ghcr.io/cross-rs/aarch64-unknown-linux-gnu:edge" [target.aarch64-unknown-linux-gnu.env] passthrough = [ "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc-10", # Use GCC 10 instead of GCC 9 for tcmalloc to compile properly "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++-10", ] [target.armv7-unknown-linux-gnueabihf] image = "ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:edge" [target.riscv64gc-unknown-linux-gnu] image = "ghcr.io/cross-rs/riscv64gc-unknown-linux-gnu:edge" [target.s390x-unknown-linux-gnu] image = "ghcr.io/cross-rs/s390x-unknown-linux-gnu:edge" [target.powerpc64le-unknown-linux-gnu] image = "ghcr.io/cross-rs/powerpc64le-unknown-linux-gnu:edge" # Linux with musl libc targets (Dorian Niemiec's custom Cross images with updated musl libc) [target.x86_64-unknown-linux-musl] image = "ghcr.io/dorianniemiecsvrjs/cross-x86_64-unknown-linux-musl:latest" [target.i686-unknown-linux-musl] image = "ghcr.io/dorianniemiecsvrjs/cross-i686-unknown-linux-musl:latest" [target.aarch64-unknown-linux-musl] image = "ghcr.io/dorianniemiecsvrjs/cross-aarch64-unknown-linux-musl:latest" # This image would work fine with tcmalloc, because of updated GCC [target.armv7-unknown-linux-musleabihf] image = "ghcr.io/dorianniemiecsvrjs/cross-armv7-unknown-linux-musleabihf:latest" [target.riscv64gc-unknown-linux-musl] image = "ghcr.io/dorianniemiecsvrjs/cross-riscv64gc-unknown-linux-musl:latest" # FreeBSD target (Cross "edge" image) [target.x86_64-unknown-freebsd] image = "ghcr.io/cross-rs/x86_64-unknown-freebsd:edge" # FreeBSD target environment variables (for bindgen to work) [target.x86_64-unknown-freebsd.env] passthrough = [ "BINDGEN_EXTRA_CLANG_ARGS_x86_64_unknown_freebsd=--sysroot=/usr/local/x86_64-unknown-freebsd13 -idirafter/usr/local/x86_64-unknown-freebsd13/include", ]