mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-27 09:31:03 +00:00
b3aa37046b
With autotools this close to being not supported anymore, let's not waste half of the CI cycles on it. The default build will catch most issues, and the rest can be tested by the old Travis. Signed-off-by: Eric Engestrom <eric.engestrom@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net>
340 lines
8.5 KiB
YAML
340 lines
8.5 KiB
YAML
# This is the tag of the docker image used for the build jobs. If the
|
|
# image doesn't exist yet, the containers-build stage generates it.
|
|
#
|
|
# In order to generate a new image, one should generally change the tag.
|
|
# While removing the image from the registry would also work, that's not
|
|
# recommended except for ephemeral images during development: Replacing
|
|
# an image after a significant amount of time might pull in newer
|
|
# versions of gcc/clang or other packages, which might break the build
|
|
# with older commits using the same tag.
|
|
#
|
|
# After merging a change resulting in generating a new image to the
|
|
# main repository, it's recommended to remove the image from the source
|
|
# repository's container registry, so that the image from the main
|
|
# repository's registry will be used there as well.
|
|
#
|
|
# The format of the tag is "%Y-%m-%d-${counter}" where ${counter} stays
|
|
# at "01" unless you have multiple updates on the same day :)
|
|
variables:
|
|
UBUNTU_TAG: 2019-03-05-01
|
|
UBUNTU_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu:$UBUNTU_TAG"
|
|
UBUNTU_IMAGE_MAIN: "registry.freedesktop.org/mesa/mesa/ubuntu:$UBUNTU_TAG"
|
|
|
|
cache:
|
|
paths:
|
|
- ccache
|
|
|
|
stages:
|
|
- containers-build
|
|
- build+test
|
|
|
|
|
|
# When to automatically run the CI
|
|
.ci-run-policy:
|
|
only:
|
|
- master
|
|
- merge_requests
|
|
- /^ci([-/].*)?$/
|
|
|
|
|
|
# CONTAINERS
|
|
|
|
ubuntu:
|
|
extends: .ci-run-policy
|
|
stage: containers-build
|
|
image: docker:stable
|
|
services:
|
|
- docker:dind
|
|
variables:
|
|
DOCKER_HOST: tcp://docker:2375
|
|
DOCKER_DRIVER: overlay2
|
|
script:
|
|
# Enable experimental features such as `docker manifest inspect`
|
|
- mkdir -p ~/.docker
|
|
- "echo '{\"experimental\": \"enabled\"}' > ~/.docker/config.json"
|
|
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
|
|
# Check if the image (with the specific tag) already exists
|
|
- docker manifest inspect $UBUNTU_IMAGE && exit || true
|
|
# Try to re-use the image from the main repository's registry
|
|
- docker image pull $UBUNTU_IMAGE_MAIN &&
|
|
docker image tag $UBUNTU_IMAGE_MAIN $UBUNTU_IMAGE &&
|
|
docker image push $UBUNTU_IMAGE && exit || true
|
|
- docker build -t $UBUNTU_IMAGE -f .gitlab-ci/Dockerfile.ubuntu .
|
|
- docker push $UBUNTU_IMAGE
|
|
|
|
|
|
# BUILD
|
|
|
|
.build:
|
|
extends: .ci-run-policy
|
|
image: $UBUNTU_IMAGE
|
|
stage: build+test
|
|
artifacts:
|
|
when: on_failure
|
|
untracked: true
|
|
# Use ccache transparently, and print stats before/after
|
|
before_script:
|
|
- export PATH="/usr/lib/ccache:$PATH"
|
|
- export CCACHE_BASEDIR="$PWD"
|
|
- export CCACHE_DIR="$PWD/ccache"
|
|
- export CCACHE_COMPILERCHECK=content
|
|
- ccache --zero-stats || true
|
|
- ccache --show-stats || true
|
|
after_script:
|
|
- export CCACHE_DIR="$PWD/ccache"
|
|
- ccache --show-stats
|
|
|
|
.meson-build:
|
|
extends: .build
|
|
script:
|
|
# We need to control the version of llvm-config we're using, so we'll
|
|
# generate a native file to do so. This requires meson >=0.49
|
|
- if test -n "$LLVM_VERSION"; then
|
|
LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
|
|
echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file;
|
|
$LLVM_CONFIG --version;
|
|
else
|
|
touch native.file;
|
|
fi
|
|
- meson --version
|
|
- meson _build
|
|
--native-file=native.file
|
|
-D build-tests=true
|
|
-D libunwind=${UNWIND}
|
|
${DRI_LOADERS}
|
|
-D dri-drivers=${DRI_DRIVERS:-[]}
|
|
${GALLIUM_ST}
|
|
-D gallium-drivers=${GALLIUM_DRIVERS:-[]}
|
|
-D vulkan-drivers=${VULKAN_DRIVERS:-[]}
|
|
-D I-love-half-baked-turnips=true
|
|
- cd _build
|
|
- meson configure
|
|
- ninja -j4
|
|
- ninja test
|
|
|
|
.scons-build:
|
|
extends: .build
|
|
variables:
|
|
SCONSFLAGS: "-j4"
|
|
script:
|
|
- if test -n "$LLVM_VERSION"; then
|
|
export LLVM_CONFIG="llvm-config-${LLVM_VERSION}";
|
|
fi
|
|
- scons $SCONS_TARGET
|
|
- eval $SCONS_CHECK_COMMAND
|
|
|
|
meson-vulkan:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "false"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D gbm=false
|
|
-D egl=false
|
|
-D platforms=x11,wayland,drm
|
|
-D osmesa=none
|
|
GALLIUM_ST: >
|
|
-D dri3=true
|
|
-D gallium-vdpau=false
|
|
-D gallium-xvmc=false
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=false
|
|
-D gallium-xa=false
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
VULKAN_DRIVERS: intel,amd,freedreno
|
|
LLVM_VERSION: "7"
|
|
|
|
meson-loader-classic-dri:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "false"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=true
|
|
-D egl=true
|
|
-D platforms=x11,wayland,drm,surfaceless
|
|
-D osmesa=classic
|
|
DRI_DRIVERS: "i915,i965,r100,r200,swrast,nouveau"
|
|
GALLIUM_ST: >
|
|
-D dri3=true
|
|
-D gallium-vdpau=false
|
|
-D gallium-xvmc=false
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=false
|
|
-D gallium-xa=false
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
|
|
meson-glvnd:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "true"
|
|
DRI_LOADERS: >
|
|
-D glvnd=true
|
|
-D egl=true
|
|
-D gbm=true
|
|
-D glx=dri
|
|
DRI_DRIVERS: "i965"
|
|
GALLIUM_ST: >
|
|
-D gallium-vdpau=false
|
|
-D gallium-xvmc=false
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=false
|
|
-D gallium-xa=false
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
|
|
meson-clang:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "true"
|
|
DRI_DRIVERS: "auto"
|
|
GALLIUM_DRIVERS: "auto"
|
|
CC: clang-7
|
|
CXX: clang++-7
|
|
|
|
# NOTE: Building SWR is 2x (yes two) times slower than all the other
|
|
# gallium drivers combined.
|
|
# Start this early so that it doesn't hunder the run time.
|
|
meson-gallium-swr:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "true"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D egl=false
|
|
-D gbm=false
|
|
GALLIUM_ST: >
|
|
-D dri3=false
|
|
-D gallium-vdpau=false
|
|
-D gallium-xvmc=false
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=false
|
|
-D gallium-xa=false
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
GALLIUM_DRIVERS: "swr"
|
|
LLVM_VERSION: "6.0"
|
|
|
|
meson-gallium-radeonsi:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "true"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D egl=false
|
|
-D gbm=false
|
|
GALLIUM_ST: >
|
|
-D dri3=false
|
|
-D gallium-vdpau=false
|
|
-D gallium-xvmc=false
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=false
|
|
-D gallium-xa=false
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
GALLIUM_DRIVERS: "radeonsi"
|
|
LLVM_VERSION: "7"
|
|
|
|
meson-gallium-drivers-other:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "true"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D egl=false
|
|
-D gbm=false
|
|
GALLIUM_ST: >
|
|
-D dri3=false
|
|
-D gallium-vdpau=false
|
|
-D gallium-xvmc=false
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=false
|
|
-D gallium-xa=false
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=disabled
|
|
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost"
|
|
LLVM_VERSION: "5.0"
|
|
|
|
meson-gallium-clover-llvm:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "true"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D egl=false
|
|
-D gbm=false
|
|
GALLIUM_ST: >
|
|
-D dri3=false
|
|
-D gallium-vdpau=false
|
|
-D gallium-xvmc=false
|
|
-D gallium-omx=disabled
|
|
-D gallium-va=false
|
|
-D gallium-xa=false
|
|
-D gallium-nine=false
|
|
-D gallium-opencl=icd
|
|
GALLIUM_DRIVERS: "r600,radeonsi"
|
|
|
|
meson-gallium-clover-llvm39:
|
|
extends: meson-gallium-clover-llvm
|
|
variables:
|
|
GALLIUM_DRIVERS: "r600"
|
|
LLVM_VERSION: "3.9"
|
|
|
|
meson-gallium-st-other:
|
|
extends: .meson-build
|
|
variables:
|
|
UNWIND: "true"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D egl=false
|
|
-D gbm=false
|
|
GALLIUM_ST: >
|
|
-D dri3=true
|
|
-D gallium-vdpau=true
|
|
-D gallium-xvmc=true
|
|
-D gallium-omx=bellagio
|
|
-D gallium-va=true
|
|
-D gallium-xa=true
|
|
-D gallium-nine=true
|
|
-D gallium-opencl=disabled
|
|
-D osmesa=gallium
|
|
GALLIUM_DRIVERS: "nouveau,swrast"
|
|
LLVM_VERSION: "5.0"
|
|
|
|
autotools:
|
|
extends: .build
|
|
variables:
|
|
MAKEFLAGS: "-j4"
|
|
LLVM_CONFIG: llvm-config-7
|
|
script:
|
|
- mkdir build
|
|
- cd build
|
|
- ../autogen.sh
|
|
--enable-autotools
|
|
--enable-debug
|
|
--disable-llvm-shared-libs
|
|
- make
|
|
- make check
|
|
|
|
scons-nollvm:
|
|
extends: .scons-build
|
|
variables:
|
|
SCONS_TARGET: "llvm=0"
|
|
SCONS_CHECK_COMMAND: "scons llvm=0 check"
|
|
|
|
scons-llvm:
|
|
extends: .scons-build
|
|
variables:
|
|
SCONS_TARGET: "llvm=1"
|
|
SCONS_CHECK_COMMAND: "scons llvm=1 check"
|
|
LLVM_VERSION: "3.9"
|
|
|
|
scons-swr:
|
|
extends: .scons-build
|
|
variables:
|
|
SCONS_TARGET: "swr=1"
|
|
SCONS_CHECK_COMMAND: "true"
|
|
LLVM_VERSION: "6.0"
|