# Copyright © SixtyFPS GmbH # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 # Use cross-image once https://github.com/rust-embedded/cross/pull/591 is merged & released #FROM rustembedded/cross:aarch64-unknown-linux-gnu-0.2.1 FROM ghcr.io/slint-ui/cross-aarch64-base:1.0 RUN dpkg --add-architecture arm64 && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes libfontconfig1-dev:arm64 libxcb1-dev:arm64 libxcb-render0-dev:arm64 libxcb-shape0-dev:arm64 libxcb-xfixes0-dev:arm64 libxkbcommon-dev:arm64 libinput-dev:arm64 libgbm-dev:arm64 libssl-dev:arm64 python3 python3-pip \ libfontconfig1-dev \ clang libstdc++-10-dev:arm64 ninja-build # Work around the Skia source build requiring a newer git version (that supports --path-format=relative with rev-parse, as needed by git-sync-deps.py), # as well as a disabling of the directory safety checks (https://github.blog/2022-04-12-git-security-vulnerability-announced/#cve-2022-24765) as # /cargo comes from ~/.cargo and may have differing user ids, which breaks when the skia-bindings build clones additional git repos (skia/third_party/external/*) RUN DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes software-properties-common && \ add-apt-repository -y ppa:git-core/ppa && \ apt-get install --assume-yes git && \ git config --global safe.directory '*' ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig ENV PKG_CONFIG_ALLOW_CROSS=1 # In the absence of a sysroot, the header files we install earlier (such as libfontconfig1-dev:arm64) are in /usr/include # so remember to teach bindgen to also look there, despite its --target. ENV BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_linux_gnu=-I/usr/include