From 7eb61a28be3b66c1016eab434ae93b5d94eb11af Mon Sep 17 00:00:00 2001 From: Kenneth Chew Date: Tue, 19 Apr 2022 02:09:16 -0400 Subject: [PATCH] Add build options for Sparkle updater Two new build options are added: `MAC_SPARKLE_PUB_KEY`: the public key used to verify the signatures of the appcast `MAC_SPARKLE_APPCAST_URL`: the URL where the `appcast.xml` is located If the updater should be disabled on macOS, set either of these to an empty string. --- CMakeLists.txt | 2 ++ buildconfig/BuildConfig.cpp.in | 8 ++++++++ buildconfig/BuildConfig.h | 6 ++++++ cmake/MacOSXBundleInfo.plist.in | 4 ++++ 4 files changed, 20 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e0bfd4c1..289a7ec4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -195,6 +195,8 @@ if(UNIX AND APPLE) set(MACOSX_BUNDLE_LONG_VERSION_STRING "${Launcher_VERSION_MAJOR}.${Launcher_VERSION_MINOR}.${Launcher_VERSION_HOTFIX}") set(MACOSX_BUNDLE_ICON_FILE ${Launcher_Name}.icns) set(MACOSX_BUNDLE_COPYRIGHT "Copyright 2021-2022 ${Launcher_Copyright}") + set(MACOSX_SPARKLE_UPDATE_PUBLIC_KEY "") + set(MACOSX_SPARKLE_UPDATE_FEED_URL "") set(MACOSX_SPARKLE_DOWNLOAD_URL "https://github.com/sparkle-project/Sparkle/releases/download/2.1.0/Sparkle-2.1.0.tar.xz" CACHE STRING "URL to Sparkle release archive") set(MACOSX_SPARKLE_SHA256 "bf6ac1caa9f8d321d5784859c88da874f28412f37fb327bc21b7b14c5d61ef94" CACHE STRING "SHA256 checksum for Sparkle release archive") diff --git a/buildconfig/BuildConfig.cpp.in b/buildconfig/BuildConfig.cpp.in index 70f8f7f05..2d07bc585 100644 --- a/buildconfig/BuildConfig.cpp.in +++ b/buildconfig/BuildConfig.cpp.in @@ -61,6 +61,14 @@ Config::Config() BUILD_PLATFORM = "@Launcher_BUILD_PLATFORM@"; UPDATER_BASE = "@Launcher_UPDATER_BASE@"; + MAC_SPARKLE_PUB_KEY = "@MACOSX_SPARKLE_UPDATE_PUBLIC_KEY@"; + MAC_SPARKLE_APPCAST_URL = "@MACOSX_SPARKLE_UPDATE_FEED_URL@"; + + if (BUILD_PLATFORM == "macOS" && !MAC_SPARKLE_PUB_KEY.isEmpty() && !MAC_SPARKLE_APPCAST_URL.isEmpty()) + { + UPDATER_ENABLED = true; + } + GIT_COMMIT = "@Launcher_GIT_COMMIT@"; GIT_REFSPEC = "@Launcher_GIT_REFSPEC@"; if (GIT_REFSPEC == QStringLiteral("GITDIR-NOTFOUND")) diff --git a/buildconfig/BuildConfig.h b/buildconfig/BuildConfig.h index 8594e46dc..e41d4ba07 100644 --- a/buildconfig/BuildConfig.h +++ b/buildconfig/BuildConfig.h @@ -74,6 +74,12 @@ class Config { /// URL for the updater's channel QString UPDATER_BASE; + /// The public key used to sign releases for the Sparkle updater appcast + QString MAC_SPARKLE_PUB_KEY; + + /// URL for the Sparkle updater's appcast + QString MAC_SPARKLE_APPCAST_URL; + /// User-Agent to use. QString USER_AGENT; diff --git a/cmake/MacOSXBundleInfo.plist.in b/cmake/MacOSXBundleInfo.plist.in index 9e663d312..1b22e21fd 100644 --- a/cmake/MacOSXBundleInfo.plist.in +++ b/cmake/MacOSXBundleInfo.plist.in @@ -40,5 +40,9 @@ NSHumanReadableCopyright ${MACOSX_BUNDLE_COPYRIGHT} + SUPublicEDKey + ${MACOSX_SPARKLE_UPDATE_PUBLIC_KEY} + SUFeedURL + ${MACOSX_SPARKLE_UPDATE_FEED_URL}