new file mode 100755
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+set -ex
+
+packages=(
+ python3-autopep8
+ python3-dev
+ python3-jinja2
+ python3-pyparsing
+ python3-ply
+ python3-yaml
+)
+
+multiarch_packages=(
+ libevent-dev
+ libpisp-dev
+ libssl-dev
+ libudev-dev
+ libyaml-dev
+ openssl
+)
+
+arch="$1"
+
+export DEBIAN_FRONTEND=noninteractive
+
+dpkg --add-architecture "$arch"
+apt update -y
+
+pkgs=()
+
+packages+=( "crossbuild-essential-$arch" )
+for pkg in "${packages[@]}"; do
+ pkgs+=( "$pkg" )
+done
+
+multiarch_packages+=( "cross-exe-wrapper" )
+multiarch_packages+=( "pkg-config" )
+for pkg in "${multiarch_packages[@]}"; do
+ pkgs+=( "$pkg:$arch" )
+done
+
+apt install -y "${pkgs[@]}"
+
+meson env2mfile --cross --debarch "$arch" -o "/opt/meson-$arch.cross"
@@ -73,6 +73,18 @@ include:
FDO_DISTRIBUTION_VERSION: 'trixie'
FDO_DISTRIBUTION_TAG: '2025-11-02.0'
+.debian-cross-build:
+ variables:
+ CROSS_BUILD_DISTRIBUTION_VERSION: 'trixie'
+ CROSS_BUILD_TAG: '2026-01-09.0'
+ CROSS_BUILD_IMAGE: 'on-device-testing/debian-rootfs'
+
+.debian-cross-build-architectures:
+ parallel:
+ matrix:
+ - ARCH:
+ - arm64
+
.container-debian:
extends:
- .fdo.container-build@debian
@@ -104,6 +116,34 @@ container-debian:13:
- .container-debian
- .libcamera-ci.debian:13
+container-build-debian-cross:
+ extends:
+ - .fdo.container-build@debian
+ - .debian-cross-build
+ - .debian-cross-build-architectures
+ stage: container
+ needs: []
+ variables:
+ GIT_STRATEGY: none
+ FDO_DISTRIBUTION_VERSION: "$CROSS_BUILD_DISTRIBUTION_VERSION"
+ FDO_DISTRIBUTION_TAG: "build-debian-cross-$CROSS_BUILD_TAG-$ARCH"
+ FDO_DISTRIBUTION_PACKAGES: >-
+ ca-certificates
+ build-essential
+ dpkg-dev
+ findutils
+ git
+ meson
+ ruby
+ FDO_DISTRIBUTION_EXEC: >-
+ if echo $CI_CONFIG_PATH | grep -q '@' ; then
+ git clone --depth 1 --single-branch "${CI_SERVER_URL}/$${CI_CONFIG_PATH/*@/}" .ci-config ;
+ rm -rf .gitlab-ci ;
+ mv .ci-config/.gitlab-ci/ . ;
+ fi ;
+ .gitlab-ci/setup-debian-cross-container.sh "$ARCH" ;
+ gem install fpm ;
+
# ------------------------------------------------------------------------------
# Build stage - Build libcamera for various platforms and configurations
# ------------------------------------------------------------------------------
Add a job that generates a debian based container with the necessary dependencies to cross compile for the given architecture. Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> --- .gitlab-ci/setup-debian-cross-container.sh | 45 ++++++++++++++++++++++ gitlab-ci.yml | 40 +++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100755 .gitlab-ci/setup-debian-cross-container.sh -- 2.52.0