74 lines
2.2 KiB
Bash
Executable File
74 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Use the same verbose variable as CMake
|
|
[ "$VERBOSE" = "1" ] && set -x
|
|
|
|
# Exit on unset variables or pipe errors
|
|
set -uo pipefail
|
|
|
|
B_MACOS="Barrier.app/Contents/MacOS"
|
|
B_VERSION="@BARRIER_VERSION@"
|
|
B_BINDIR="@CMAKE_RUNTIME_OUTPUT_DIRECTORY@"
|
|
B_BUILDTYPE="@CMAKE_BUILD_TYPE@"
|
|
B_BARRIERC="Barrier.app/Contents/MacOS/barrierc"
|
|
B_BARRIERS="Barrier.app/Contents/MacOS/barriers"
|
|
|
|
# Colorized output
|
|
info() { tput bold; echo "$@"; tput sgr0 ; }
|
|
error() { tput bold; tput setaf 1; echo "$@"; tput sgr0 ; }
|
|
success() { tput bold; tput setaf 2; echo "$@"; tput sgr0 ; }
|
|
warn() { tput bold; tput setaf 3; echo "$@"; tput sgr0 ; }
|
|
|
|
info "Checking for bundle contents"
|
|
if [ ! -d "Barrier.app/Contents" ]; then
|
|
error "Please make sure that the build completed successfully"
|
|
error "before trying to create the installer."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -d "$B_MACOS" ]; then
|
|
info "Removing old binaries from bundle"
|
|
rm -r "$B_MACOS"
|
|
fi
|
|
|
|
info "Copying binaries into bundle"
|
|
# Copy the folder instead of globbing unquoted path
|
|
cp -r "$B_BINDIR" "$B_MACOS" || exit 1
|
|
|
|
# Check for macdeployqt on MacPorts
|
|
if which -s port ; then
|
|
info "MacPorts found, searching for macdeployqt"
|
|
DEPLOYQT="$(port contents qt5-qttools | grep --only --max-count 1 '/.*macdeployqt')"
|
|
if [ ! -x "$DEPLOYQT" ]; then
|
|
error "Please install package qt5-qttools"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Check for macdeployqt on Homebrew
|
|
if which -s brew ; then
|
|
info "Homebrew found, searching for macdeployqt"
|
|
DEPLOYQT="$(brew list qt@5 | grep --only '/.*macdeployqt' | head -1)"
|
|
if [ ! -x "$DEPLOYQT" ]; then
|
|
error "Please install package qt"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Use macdeployqt to include libraries and create dmg
|
|
if [ "$B_BUILDTYPE" = "Release" ]; then
|
|
info "Building Release disk image (dmg)"
|
|
"$DEPLOYQT" Barrier.app -dmg \
|
|
-executable="$B_BARRIERC" \
|
|
-executable="$B_BARRIERS" || exit 1
|
|
mv "Barrier.dmg" "Barrier-$B_VERSION.dmg" || exit 1
|
|
success "Created Barrier-$B_VERSION.dmg"
|
|
else
|
|
warn "Disk image (dmg) only created for Release builds"
|
|
info "Building debug bundle"
|
|
"$DEPLOYQT" Barrier.app -no-strip \
|
|
-executable="$B_BARRIERC" \
|
|
-executable="$B_BARRIERS" || exit 1
|
|
success "Bundle created successfully"
|
|
fi
|