57 lines
1.9 KiB
Bash
Executable file
57 lines
1.9 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
APP_NAME="Jamulus"
|
|
SERVER_NAME="${APP_NAME}Server"
|
|
INSTALLER_NAME="${APP_NAME}-installer"
|
|
ROOT_PATH="$(pwd)"
|
|
MAC_PATH="${ROOT_PATH}/mac"
|
|
RES_PATH="${ROOT_PATH}/src/res"
|
|
BUILD_PATH="${ROOT_PATH}/build"
|
|
DEPLOY_PATH="${ROOT_PATH}/deploy"
|
|
JOB_COUNT=$(sysctl -n hw.ncpu)
|
|
|
|
function build_app {
|
|
# Build Jamulus
|
|
qmake "${ROOT_PATH}/${APP_NAME}.pro" -o "${BUILD_PATH}/Makefile" \
|
|
"CONFIG+=release" "TARGET=$1" "QMAKE_APPLICATION_BUNDLE_NAME=$1" ${@:2}
|
|
|
|
make -f "${BUILD_PATH}/Makefile" -C "${BUILD_PATH}" -j${JOB_COUNT}
|
|
|
|
# Deploy Jamulus
|
|
macdeployqt "${BUILD_PATH}/$1.app" -verbose=2 -always-overwrite
|
|
mv "${BUILD_PATH}/$1.app" "${DEPLOY_PATH}"
|
|
make -f "${BUILD_PATH}/Makefile" -C "${BUILD_PATH}" distclean
|
|
}
|
|
|
|
# Check we are running from the correct location
|
|
if [ ! -f "${ROOT_PATH}/${APP_NAME}.pro" ]; then
|
|
echo Please run this script from the ${APP_NAME} Qt project directory.
|
|
echo Usage: mac/$(basename $0)
|
|
exit 1
|
|
fi
|
|
|
|
# Install dmgbuild (for the current user), this is required to build the installer image
|
|
python -m ensurepip --user --default-pip
|
|
python -m pip install --user dmgbuild
|
|
DMGBUILD_BIN="$(python -c 'import site; print(site.USER_BASE)')/bin/dmgbuild"
|
|
|
|
# Get Jamulus version
|
|
APP_VERSION=$(cat "${ROOT_PATH}/${APP_NAME}.pro" | sed -nE 's/^VERSION *= *(.*)$/\1/p')
|
|
|
|
# Clean up previous deployments
|
|
rm -rf "${BUILD_PATH}"
|
|
rm -rf "${DEPLOY_PATH}"
|
|
mkdir -p "${BUILD_PATH}"
|
|
mkdir -p "${DEPLOY_PATH}"
|
|
|
|
# Build Jamulus client
|
|
build_app "${APP_NAME}"
|
|
|
|
# Build Jamulus server
|
|
build_app "${SERVER_NAME}" "DEFINES+=SERVER_BUNDLE"
|
|
|
|
# Build installer image
|
|
"${DMGBUILD_BIN}" -s "${MAC_PATH}/deployment_settings.py" -D background="${RES_PATH}/installerbackground.png" \
|
|
-D app_path="${DEPLOY_PATH}/${APP_NAME}.app" -D server_path="${DEPLOY_PATH}/${SERVER_NAME}.app" \
|
|
-D license="${ROOT_PATH}/COPYING" "${INSTALLER_NAME}" "${DEPLOY_PATH}/${INSTALLER_NAME}-${APP_VERSION}-mac.dmg"
|