libinput 1.22.0
[platform/upstream/libinput.git] / .gitlab-ci / meson-build.sh
1 #!/usr/bin/env bash
2
3 set -x
4 if [[ -f .meson_environment ]]; then
5         . .meson_environment
6 fi
7
8 # If test args are set, we assume we want to run the tests
9 MESON_RUN_TEST="$MESON_TEST_ARGS"
10
11 while [[ $# -gt 0 ]]; do
12         case $1 in
13                 --skip-setup)
14                         shift
15                         MESON_SKIP_SETUP="1"
16                         ;;
17                 --skip-build)
18                         shift
19                         MESON_SKIP_BUILD="1"
20                         ;;
21                 --skip-test)
22                         shift
23                         MESON_RUN_TEST=""
24                         ;;
25                 --run-test)
26                         shift
27                         MESON_RUN_TEST="1"
28                         ;;
29                 *)
30                         echo "Unknow commandline argument $1"
31                         exit 1
32                         ;;
33         esac
34 done
35
36 if [[ -z "$MESON_BUILDDIR" ]]; then
37         echo "\$MESON_BUILDDIR undefined."
38         exit 1
39 fi
40
41 # emulate a few gitlab variables to make it easier to
42 # run and debug locally.
43 if [[ -z "$CI_JOB_ID" ]] || [[ -z "$CI_JOB_NAME" ]]; then
44         echo "Missing \$CI_JOB_ID or \$CI_JOB_NAME".
45         CI_JOB_ID=$(date +%s)
46         CI_JOB_NAME='libinput-job-local'
47         echo "Simulating gitlab environment: "
48         echo " CI_JOB_ID=$CI_JOB_ID"
49         echo " CI_JOB_NAME=$CI_JOB_NAME"
50 fi
51
52 if [[ -n "$FDO_CI_CONCURRENT" ]]; then
53         NINJA_ARGS="-j$FDO_CI_CONCURRENT $NINJA_ARGS"
54         export MESON_TESTTHREADS="$FDO_CI_CONCURRENT"
55 fi
56
57 echo "*************************************************"
58 echo "builddir: $MESON_BUILDDIR"
59 echo "meson args: $MESON_ARGS"
60 echo "ninja args: $NINJA_ARGS"
61 echo "meson test args: $MESON_TEST_ARGS"
62 echo "*************************************************"
63
64 set -e
65
66 if [[ -z "$MESON_SKIP_SETUP" ]]; then
67         rm -rf "$MESON_BUILDDIR"
68         meson setup "$MESON_BUILDDIR" $MESON_ARGS
69 fi
70 meson configure "$MESON_BUILDDIR"
71
72 if [[ -z "$MESON_SKIP_BUILD" ]]; then
73         ninja -C "$MESON_BUILDDIR" $NINJA_ARGS
74 fi
75
76 if [[ -n "$MESON_RUN_TEST" ]]; then
77         meson test -C "$MESON_BUILDDIR" $MESON_TEST_ARGS --print-errorlogs
78 fi