#!/bin/bash # Path to the Qt library, clang, 64-bit build. libQtPath="~/Qt5.12.9/5.12.9/clang_64" upstreamURL="https://github.com/DEAKSoftware/Synergy-Binaries.git" queriedURL="$( git config --get remote.origin.url )" toplevelPath="$( git rev-parse --show-toplevel )" if [ "${upstreamURL}" != "${queriedURL}" ] || [ "${toplevelPath}" == "" ]; then echo "error: Unrecognised Git upstream URL, or top-level directory. This script must run within the top-level directory of the Synergy-Binaries repository." exit 1 fi synergyCorePath="${toplevelPath}/Synergy-Core" buildPath="${synergyCorePath}/build" binariesPath="${toplevelPath}/Binaries" toolsPath="${toplevelPath}/Tools" configureSubmodules() { git submodule update --init --remote --recursive } configureQt() { export PATH="${libQtPath}:$PATH" } configureCMake() { cmake -S "${synergyCorePath}" -B "${buildPath}" \ -D CMAKE_OSX_DEPLOYMENT_TARGET=10.12 \ -D CMAKE_OSX_ARCHITECTURES=x86_64 \ -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_CONFIGURATION_TYPES=Release \ -D SYNERGY_ENTERPRISE=ON || exit 1 } configureVersion() { source "${buildPath}/version" synergyVersion="${SYNERGY_VERSION_MAJOR}.${SYNERGY_VERSION_MINOR}.${SYNERGY_VERSION_PATCH}" synergyReleaseName="synergy-${synergyVersion}-macos-x64" } configure() { configureSubmodules configureQt configureCMake configureVersion } buildApp() { pushd "${buildPath}" || exit 1 make -j || exit 1 make install/strip || exit 1 macdeployqt "${buildPath}/bundle/Synergy.app" cp -R "${buildPath}/bundle/Synergy.app" "${binariesPath}" popd } buildDMG() { ln -s /Applications "${buildPath}/bundle/Applications" hdiutil create -volname "Synergy ${synergyVersion}" -srcfolder "${buildPath}/bundle" -ov -format UDZO "${binariesPath}/${synergyReleaseName}.dmg" || exit 1 } buildClean() { pushd "${synergyCorePath}" || exit 1 git clean -fdx popd pushd "${toplevelPath}" || exit 1 git clean -fdx popd } if [ "${1}" = "--help" ] || [ "${1}" = "-h" ]; then cat "${toplevelPath}/Documentation/HelpMacOS.txt" elif [ "${1}" = "--app" ]; then configure buildApp elif [ "${1}" = "--dmg" ]; then configure buildDMG elif [ "${1}" = "--all" ]; then configure buildApp buildDMG elif [ "${1}" = "--clean" ]; then buildClean else echo "error: Bad or unknown option. Run with '--help' option for details." exit 1 fi exit 0