Implement Mac App Store build support by introducing the BUILD_FOR_MAC_APP_STORE option. This change disables Sparkle and localhost OAuth redirect server for MAS builds, updates CMake configuration, and modifies build scripts accordingly. Additionally, the macOS bundle identifier is now configurable via CMake.

This commit is contained in:
2026-01-22 19:28:00 +09:00
parent 6a1d8bbc87
commit bd59c19301
11 changed files with 479 additions and 29 deletions

View File

@@ -91,7 +91,7 @@ run_with_heartbeat() {
usage() {
cat <<'EOF'
Usage:
./build_tools/macos/build_app.sh [--debug|--release] [--deploy] [--dmg] [--clean] [--build-dir <path>]
./build_tools/macos/build_app.sh [--debug|--release] [--mas] [--deploy] [--dmg] [--clean] [--build-dir <path>]
What it does:
- Configures and builds Strawberry with CMake + Ninja
@@ -100,6 +100,7 @@ What it does:
Options:
--release Release build (default)
--debug Debug build
--mas Build for Mac App Store (BUILD_FOR_MAC_APP_STORE=ON). Disables Sparkle/QtSparkle and any localhost OAuth redirect listener.
--deploy Run: cmake --build <builddir> --target deploy
--dmg Run: cmake --build <builddir> --target dmg (implies --deploy)
--clean Delete the build dir before configuring
@@ -109,6 +110,7 @@ EOF
}
config="Release"
do_mas=0
do_deploy=0
do_dmg=0
do_clean=0
@@ -118,6 +120,7 @@ while [[ $# -gt 0 ]]; do
case "$1" in
--release) config="Release"; shift ;;
--debug) config="Debug"; shift ;;
--mas) do_mas=1; shift ;;
--deploy) do_deploy=1; shift ;;
--dmg) do_dmg=1; do_deploy=1; shift ;;
--clean) do_clean=1; shift ;;
@@ -165,6 +168,9 @@ fi
echo "==> [$(ts)] Repo: ${repo_root}"
echo "==> [$(ts)] Build dir: ${build_dir}"
echo "==> [$(ts)] Config: ${config}"
if [[ "$do_mas" -eq 1 ]]; then
echo "==> [$(ts)] MAS: enabled (BUILD_FOR_MAC_APP_STORE=ON)"
fi
if [[ "$do_clean" -eq 1 ]]; then
echo "==> [$(ts)] Cleaning build dir"
@@ -213,6 +219,11 @@ cmake_prefix_path="${qt_prefix};${brew_prefix}"
cmake_extra_args=()
# Mac App Store build mode
if [[ "$do_mas" -eq 1 ]]; then
cmake_extra_args+=("-DBUILD_FOR_MAC_APP_STORE=ON")
fi
# Optional: override Sparkle update feed / key for your own published builds.
# Example:
# export SPARKLE_FEED_URL="https://example.com/appcast.xml"