2023-02-01 11:57:21 +01:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -eo pipefail
|
|
|
|
|
|
2025-09-12 18:11:27 +01:00
|
|
|
GO_VERSION="1.24.7"
|
2023-02-01 11:57:21 +01:00
|
|
|
GO_INSTALL_DIR="/usr/local/go"
|
2026-03-25 22:48:57 +05:30
|
|
|
QT_VERSION="6.11.0"
|
2025-04-16 14:22:18 +04:00
|
|
|
CMAKE_VERSION="3.31.6"
|
|
|
|
|
CMAKE_BREW_FORMULA_COMMIT_SHA="b4e46db74e74a8c1650b38b1da222284ce1ec5ce"
|
|
|
|
|
CMAKE_FORMULA_URL="https://raw.githubusercontent.com/Homebrew/homebrew-core/${CMAKE_BREW_FORMULA_COMMIT_SHA}/Formula/c/cmake.rb"
|
2025-02-26 12:55:19 +05:30
|
|
|
BREW_PREFIX=$(brew --prefix)
|
2025-04-16 14:22:18 +04:00
|
|
|
CMAKE_INSTALL_DIR="${BREW_PREFIX}/Cellar/cmake/${CMAKE_VERSION}"
|
2023-02-01 11:57:21 +01:00
|
|
|
|
2026-01-29 19:41:26 +01:00
|
|
|
# Prevent Homebrew from uprading things without permission.
|
|
|
|
|
export HOMEBREW_NO_INSTALL_UPGRADE=1
|
|
|
|
|
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
|
|
|
|
export HOMEBREW_NO_ENV_HINTS=1
|
|
|
|
|
|
2023-02-01 11:57:21 +01:00
|
|
|
function check_version {
|
|
|
|
|
if [[ "$(uname -s)" != "Darwin" ]]; then
|
|
|
|
|
echo "ERROR: Installer intended for MacOS/Darwin!"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function install_build_dependencies {
|
|
|
|
|
echo "Install build dependencies"
|
2025-12-09 22:30:28 +04:00
|
|
|
brew install pkg-config libtool jq node@22 yarn protoc-gen-go aqtinstall xcbeautify nim
|
2023-02-01 11:57:21 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function install_qt {
|
2025-02-26 12:55:19 +05:30
|
|
|
echo "Installing QT ${QT_VERSION}"
|
2025-06-03 13:41:06 +02:00
|
|
|
aqt install-qt mac desktop ${QT_VERSION} clang_64 -m all
|
2025-09-20 21:12:44 +05:30
|
|
|
aqt install-qt mac ios ${QT_VERSION} ios -m all
|
2023-02-01 11:57:21 +01:00
|
|
|
}
|
|
|
|
|
|
2025-04-16 14:22:18 +04:00
|
|
|
function install_cmake {
|
|
|
|
|
echo "Installing CMake ${CMAKE_VERSION}"
|
2026-01-29 19:41:26 +01:00
|
|
|
TAP_DIR="${BREW_PREFIX}/Library/Taps/local/homebrew-tmp/Formula"
|
|
|
|
|
mkdir -p "${TAP_DIR}"
|
|
|
|
|
curl -s -o "${TAP_DIR}/cmake.rb" "${CMAKE_FORMULA_URL}"
|
|
|
|
|
brew uninstall cmake || true
|
|
|
|
|
brew install 'local/tmp/cmake'
|
2025-04-16 14:22:18 +04:00
|
|
|
}
|
|
|
|
|
|
2023-02-01 11:57:21 +01:00
|
|
|
function get_go_arch {
|
|
|
|
|
case "$(uname -m)" in
|
|
|
|
|
"x86_64") echo "amd64" ;;
|
|
|
|
|
"aarch64") echo "arm64" ;;
|
|
|
|
|
"armv*") echo "armv6l" ;;
|
|
|
|
|
*) echo "UNKNOWN" ;;
|
|
|
|
|
esac
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function install_golang {
|
|
|
|
|
if [[ -x "$(command -v go)" ]]; then
|
|
|
|
|
echo "Already present: $(go version)"
|
|
|
|
|
return
|
|
|
|
|
fi
|
|
|
|
|
declare -A GO_SHA256_MAP
|
|
|
|
|
GO_SHA256_MAP=(
|
2025-06-15 12:36:48 +05:30
|
|
|
["amd64"]="1cbd7af6f07bc6fa1f8672f9b913c961986864100e467e0acdc942e0ae46fe68"
|
|
|
|
|
["arm64"]="25c64bfa8a8fd8e7f62fb54afa4354af8409a4bb2358c2699a1003b733e6fce5"
|
2023-02-01 11:57:21 +01:00
|
|
|
)
|
|
|
|
|
echo "Install GoLang ${GO_VERSION}"
|
|
|
|
|
GO_ARCH=$(get_go_arch)
|
|
|
|
|
GO_OS=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
|
|
|
GO_TARBALL="go${GO_VERSION}.${GO_OS}-${GO_ARCH}.tar.gz"
|
2025-06-15 12:36:48 +05:30
|
|
|
# example: https://dl.google.com/go/go1.23.10.darwin-amd64.tar.gz
|
2023-02-01 11:57:21 +01:00
|
|
|
wget -q "https://dl.google.com/go/${GO_TARBALL}" -O "${GO_TARBALL}"
|
|
|
|
|
echo "${GO_SHA256_MAP[${GO_ARCH}]} ${GO_TARBALL}" | sha256sum -c
|
|
|
|
|
tar -C "${GO_INSTALL_DIR%/go}" -xzf "${GO_TARBALL}"
|
|
|
|
|
rm "${GO_TARBALL}"
|
|
|
|
|
ln -s "${GO_INSTALL_DIR}/bin/go" /usr/local/bin
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function success_message {
|
|
|
|
|
msg="
|
|
|
|
|
SUCCESS!
|
|
|
|
|
|
2025-04-16 14:22:18 +04:00
|
|
|
Before you attempt to build status-desktop you'll need a few environment variables set:
|
2023-02-01 11:57:21 +01:00
|
|
|
|
|
|
|
|
export PATH=\$QTDIR:\$QTDIR/bin:\$PATH
|
2025-04-16 14:22:18 +04:00
|
|
|
export CMAKE_PREFIX_PATH=${CMAKE_INSTALL_DIR}
|
2023-02-01 11:57:21 +01:00
|
|
|
"
|
|
|
|
|
echo $msg
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if [ "$0" = "$BASH_SOURCE" ]; then
|
|
|
|
|
check_version
|
|
|
|
|
install_build_dependencies
|
2025-04-16 14:22:18 +04:00
|
|
|
install_cmake
|
2023-02-01 11:57:21 +01:00
|
|
|
install_qt
|
|
|
|
|
install_golang
|
|
|
|
|
success_message
|
|
|
|
|
fi
|