diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bec09e3e15c5dc3318373e995dc0e3327180bc3a..2c17ec613128646aa2042d5042abcdf7b639cfb0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -57,6 +57,15 @@ build:tests-debian-meson: paths: - meson-test-list.txt +build:tests-debian-meson-arm64: + image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest + stage: build + script: + - PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/ meson --cross-file meson-cross-arm64.txt build + - ninja -C build + artifacts: + paths: + - build build:tests-debian-autotools: image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian:latest @@ -77,6 +86,14 @@ test:ninja-test: stage: test script: ninja -C build test +test:ninja-test-arm64: + when: manual + image: $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64:latest + dependencies: + - build:tests-debian-meson-arm64 + stage: test + script: ninja -C build test + test:test-list-diff: dependencies: - build:tests-debian-autotools @@ -117,6 +134,22 @@ containers:igt-debian: - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian -f Dockerfile.debian . - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian +containers:igt-debian-arm64: + stage: containers + image: docker:stable + only: + changes: + - Dockerfile.debian-arm64 + services: + - docker:dind + variables: + DOCKER_HOST: tcp://docker:2375 + DOCKER_DRIVER: overlay2 + script: + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker build -t $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64 -f Dockerfile.debian-arm64 . + - docker push $CI_REGISTRY/$CI_PROJECT_PATH/igt-debian-arm64 + containers:igt-fedora: stage: containers image: docker:stable diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64 new file mode 100644 index 0000000000000000000000000000000000000000..20c2e8b30663a7dd24a6775c66808840ed59b151 --- /dev/null +++ b/Dockerfile.debian-arm64 @@ -0,0 +1,46 @@ +FROM debian:stretch-backports + +RUN apt-get update +RUN apt-get install -y \ + flex \ + bison \ + pkg-config \ + x11proto-dri2-dev \ + python-docutils \ + valgrind \ + peg + +RUN dpkg --add-architecture arm64 +RUN apt-get update +RUN apt-get install -y \ + gcc-aarch64-linux-gnu \ + libpciaccess-dev:arm64 \ + libkmod-dev:arm64 \ + libprocps-dev:arm64 \ + libunwind-dev:arm64 \ + libdw-dev:arm64 \ + zlib1g-dev:arm64 \ + liblzma-dev:arm64 \ + libssl-dev:arm64 \ + libcairo-dev:arm64 \ + libpixman-1-dev:arm64 \ + libudev-dev:arm64 \ + libgsl-dev:arm64 \ + libasound2-dev:arm64 \ + libjson-c-dev:arm64 \ + libcurl4-openssl-dev:arm64 \ + libxrandr-dev:arm64 \ + libxv-dev:arm64 + +RUN apt-get install -t stretch-backports -y \ + meson \ + libdrm-dev:arm64 \ + qemu-user + +# autotools build deps +RUN apt-get install -y \ + autoconf \ + automake \ + xutils-dev \ + libtool \ + make diff --git a/meson-cross-arm64.txt b/meson-cross-arm64.txt new file mode 100644 index 0000000000000000000000000000000000000000..d96f180e2b05f2640a5037abf84873124161379f --- /dev/null +++ b/meson-cross-arm64.txt @@ -0,0 +1,12 @@ +[binaries] +c = '/usr/bin/aarch64-linux-gnu-gcc' +ar = '/usr/bin/aarch64-linux-gnu-gcc-ar' +strip = '/usr/bin/aarch64-linux-gnu-strip' +pkgconfig = 'pkg-config' +exe_wrapper = 'qemu-aarch64' + +[host_machine] +system = 'linux' +cpu_family = 'aarch64' +cpu = 'aarch64' +endian = 'little'