gitlab/cerbero_setup.sh: refactor some tests to if/else statments
[platform/upstream/gstreamer.git] / gitlab / cerbero_setup.sh
1 set -ex
2
3 show_ccache_sum() {
4     if [[ -n ${HAVE_CCACHE} ]]; then
5         ccache -s
6     fi
7 }
8
9 # Produces runtime and devel tarball packages for linux/android or .pkg for macos
10 cerbero_package_and_check() {
11     $CERBERO $CERBERO_ARGS package --offline ${CERBERO_PACKAGE_ARGS} -o "$(pwd)" gstreamer-1.0
12
13     # Run gst-inspect-1.0 for some basic checks. Can't do this for cross-(android|ios)-universal, of course.
14     if [[ $CONFIG != *universal* ]]; then
15         $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX --version
16         $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX
17     fi
18
19     show_ccache_sum
20 }
21
22 cerbero_before_script() {
23     # FIXME Wrong namespace
24     # Workaround build-tools having hardcoded internal path
25     pwd
26     mkdir -p "../../gstreamer"
27     ln -sf "$(pwd)" "../../gstreamer/cerbero"
28     mkdir -p "../../${CI_PROJECT_NAMESPACE}"
29     ln -sf "$(pwd)" "../../${CI_PROJECT_NAMESPACE}/cerbero"
30     rsync -aH "${CERBERO_HOST_DIR}" .
31     echo "home_dir = \"$(pwd)/${CERBERO_HOME}\"" >> localconf.cbc
32     echo "local_sources = \"$(pwd)/${CERBERO_SOURCES}\"" >> localconf.cbc
33     ./cerbero-uninstalled --self-update manifest.xml
34 }
35
36 cerbero_script() {
37     show_ccache_sum
38
39     $CERBERO $CERBERO_ARGS show-config
40     $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
41     $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
42     $CERBERO $CERBERO_ARGS fetch-cache --branch "${GST_UPSTREAM_BRANCH}"
43
44     if [[ -n ${CERBERO_OVERRIDDEN_DIST_DIR} ]]; then
45         test -d "${CERBERO_HOME}/dist/${ARCH}"
46         mkdir -p "${CERBERO_OVERRIDDEN_DIST_DIR}"
47         rsync -aH "${CERBERO_HOME}/dist/${ARCH}/" "${CERBERO_OVERRIDDEN_DIST_DIR}"
48     fi
49
50     $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
51     cerbero_package_and_check
52 }
53
54 cerbero_deps_script() {
55     show_ccache_sum
56
57     $CERBERO $CERBERO_ARGS show-config
58     $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
59     $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
60     $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
61     $CERBERO $CERBERO_ARGS build-deps --offline \
62         gstreamer-1.0 gst-plugins-base-1.0 gst-plugins-good-1.0 \
63         gst-plugins-bad-1.0 gst-plugins-ugly-1.0 gst-rtsp-server-1.0 \
64         gst-libav-1.0 gst-devtools-1.0 gst-editing-services-1.0 libnice
65
66     if [[ -n ${CERBERO_OVERRIDDEN_DIST_DIR} ]]; then
67         mkdir -p "${CERBERO_HOME}/dist/${ARCH}"
68         rsync -aH "${CERBERO_OVERRIDDEN_DIST_DIR}/" "${CERBERO_HOME}/dist/${ARCH}"
69     fi
70
71     if [[ -n ${CERBERO_PRIVATE_SSH_KEY} ]]; then
72         $CERBERO $CERBERO_ARGS gen-cache --branch "${GST_UPSTREAM_BRANCH}"
73         $CERBERO $CERBERO_ARGS upload-cache --branch "${GST_UPSTREAM_BRANCH}"
74     fi
75
76     cerbero_package_and_check
77 }
78
79 # Run whichever function is asked of us
80 eval "$1"