111 lines
3.6 KiB
Bash
Executable File
111 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: GPL-3.0-only
|
|
# MuseScore-CLA-applies
|
|
#
|
|
# MuseScore
|
|
# Music Composition & Notation
|
|
#
|
|
# Copyright (C) 2021 MuseScore BVBA and others
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 3 as
|
|
# published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
echo "Build Linux MuseScore AppImage"
|
|
|
|
#set -x
|
|
trap 'echo Build failed; exit 1' ERR
|
|
|
|
df -h .
|
|
|
|
BUILD_TOOLS=$HOME/build_tools
|
|
ARTIFACTS_DIR=build.artifacts
|
|
CRASH_REPORT_URL=""
|
|
BUILD_MODE=""
|
|
SUFFIX="" # appended to `mscore` command name to avoid conflicts (e.g. `mscoredev`)
|
|
YOUTUBE_API_KEY=""
|
|
|
|
while [[ "$#" -gt 0 ]]; do
|
|
case $1 in
|
|
-n|--number) BUILD_NUMBER="$2"; shift ;;
|
|
--crash_log_url) CRASH_REPORT_URL="$2"; shift ;;
|
|
--build_mode) BUILD_MODE="$2"; shift ;;
|
|
--youtube_api_key) YOUTUBE_API_KEY="$2"; shift ;;
|
|
--arch) PACKARCH="$2"; shift ;;
|
|
*) echo "Unknown parameter passed: $1"; exit 1 ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ -z "$BUILD_NUMBER" ]; then echo "error: not set BUILD_NUMBER"; exit 1; fi
|
|
if [ -z "$BUILD_MODE" ]; then BUILD_MODE=$(cat $ARTIFACTS_DIR/env/build_mode.env); fi
|
|
if [ -z "$YOUTUBE_API_KEY" ]; then YOUTUBE_API_KEY=""; fi
|
|
|
|
MUSESCORE_BUILD_MODE=dev
|
|
|
|
case "${BUILD_MODE}" in
|
|
"devel_build") MUSESCORE_BUILD_MODE=dev; SUFFIX=dev;;
|
|
"nightly_build") MUSESCORE_BUILD_MODE=dev; SUFFIX=nightly;;
|
|
"testing_build") MUSESCORE_BUILD_MODE=testing; SUFFIX=testing;;
|
|
"stable_build") MUSESCORE_BUILD_MODE=release; SUFFIX="";;
|
|
"mtests") MUSESCORE_BUILD_MODE=dev; BUILDTYPE=installdebug; OPTIONS="USE_SYSTEM_FREETYPE=ON UPDATE_CACHE=FALSE PREFIX=$ARTIFACTS_DIR/software";;
|
|
esac
|
|
|
|
echo "MUSESCORE_BUILD_MODE: $MUSESCORE_BUILD_MODE"
|
|
echo "BUILD_NUMBER: $BUILD_NUMBER"
|
|
echo "CRASH_REPORT_URL: $CRASH_REPORT_URL"
|
|
echo "BUILD_MODE: $BUILD_MODE"
|
|
echo "YOUTUBE_API_KEY: $YOUTUBE_API_KEY"
|
|
|
|
echo "=== ENVIRONMENT === "
|
|
|
|
cat $BUILD_TOOLS/environment.sh
|
|
source $BUILD_TOOLS/environment.sh
|
|
|
|
# disable update module due to current broken functionality
|
|
if [ "$PACKARCH" == "aarch64" ] || [ "$PACKARCH" == "armv7l" ]; then
|
|
MUSESCORE_BUILD_UPDATE_MODULE="OFF"
|
|
fi
|
|
|
|
# TODO: https://github.com/musescore/MuseScore/issues/11689
|
|
#echo "VST3_SDK_PATH: $VST3_SDK_PATH"
|
|
#if [ -z "$VST3_SDK_PATH" ]; then
|
|
# echo "warning: not set VST3_SDK_PATH, build VST module disabled"
|
|
# BUILD_VST=OFF
|
|
#else
|
|
# BUILD_VST=ON
|
|
#fi
|
|
BUILD_VST=OFF
|
|
|
|
echo "=== BUILD ==="
|
|
|
|
MUSESCORE_REVISION=$(git rev-parse --short=7 HEAD)
|
|
|
|
# Build portable AppImage
|
|
MUSESCORE_BUILD_MODE=$MUSESCORE_BUILD_MODE \
|
|
MUSESCORE_INSTALL_SUFFIX=$SUFFIX \
|
|
MUSESCORE_BUILD_NUMBER=$BUILD_NUMBER \
|
|
MUSESCORE_REVISION=$MUSESCORE_REVISION \
|
|
MUSESCORE_CRASHREPORT_URL=$CRASH_REPORT_URL \
|
|
MUSESCORE_BUILD_VST_MODULE=$BUILD_VST \
|
|
MUSESCORE_VST3_SDK_PATH=$VST3_SDK_PATH \
|
|
MUSESCORE_YOUTUBE_API_KEY=$YOUTUBE_API_KEY \
|
|
MUSESCORE_BUILD_CRASHPAD_CLIENT=${MUSESCORE_BUILD_CRASHPAD_CLIENT:-"ON"} \
|
|
MUSESCORE_BUILD_UPDATE_MODULE=${MUSESCORE_BUILD_UPDATE_MODULE:-"ON"} \
|
|
bash ./ninja_build.sh -t appimage
|
|
|
|
|
|
bash ./build/ci/tools/make_release_channel_env.sh -c $MUSESCORE_BUILD_MODE
|
|
bash ./build/ci/tools/make_version_env.sh $BUILD_NUMBER
|
|
bash ./build/ci/tools/make_revision_env.sh $MUSESCORE_REVISION
|
|
bash ./build/ci/tools/make_branch_env.sh
|
|
|
|
df -h .
|