summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'BuildTools')
-rw-r--r--BuildTools/SCons/SConscript.boot3
-rw-r--r--BuildTools/SCons/SConstruct9
-rw-r--r--BuildTools/SCons/Tools/AppBundle.py7
3 files changed, 16 insertions, 3 deletions
diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot
index 8379a58..d6527f3 100644
--- a/BuildTools/SCons/SConscript.boot
+++ b/BuildTools/SCons/SConscript.boot
@@ -110,6 +110,9 @@ vars.Add("codesign_identity", "macOS code signing identity to be passed to codes
vars.Add("signtool_key_pfx", "The keyfile (.pfx) that will be used to sign the Windows installer.", None)
vars.Add("signtool_timestamp_url", "The timestamp server that will be queried for a signed time stamp in the signing process.", None)
+# Automatic Software Update Options
+vars.Add(PathVariable("sparkle_public_dsa_key", "Optional path to a public DSA key used to verify Sparkle software updates. Without specifiying this option, the app needs to be code signed for Sparkle to work.", None, PathVariable.PathIsFile))
+
################################################################################
# Set up default build & configure environment
diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct
index b5757b8..2da3787 100644
--- a/BuildTools/SCons/SConstruct
+++ b/BuildTools/SCons/SConstruct
@@ -289,7 +289,7 @@ if env.get("try_gconf", True) and env["PLATFORM"] != "win32" and env["PLATFORM"]
env["HAVE_SPARKLE"] = 0
if env["PLATFORM"] == "darwin" :
sparkle_flags = {
- "FRAMEWORKPATH": ["/Library/Frameworks"],
+ "FRAMEWORKPATH": ["3rdParty/Sparkle/Sparkle-1.14.0"],
"FRAMEWORKS": ["Sparkle"]
}
sparkle_env = conf_env.Clone()
@@ -298,9 +298,14 @@ if env["PLATFORM"] == "darwin" :
if conf.CheckObjCHeader("Sparkle/Sparkle.h") :
env["HAVE_SPARKLE"] = 1
env["SPARKLE_FLAGS"] = sparkle_flags
- env["SPARKLE_FRAMEWORK"] = "/Library/Frameworks/Sparkle.framework"
+ env["SPARKLE_FRAMEWORK"] = Dir("../../3rdParty/Sparkle/Sparkle-1.14.0/Sparkle.framework")
conf.Finish()
+ if env.get("sparkle_public_dsa_key", None) != None :
+ env["SWIFT_SPARKLE_PUBLIC_DSA_KEY"] = File(env.get("sparkle_public_dsa_key"))
+ else :
+ env["SWIFT_SPARKLE_PUBLIC_DSA_KEY"] = None
+
# Growl
env["HAVE_GROWL"] = 0
if env["PLATFORM"] == "darwin" :
diff --git a/BuildTools/SCons/Tools/AppBundle.py b/BuildTools/SCons/Tools/AppBundle.py
index fda3484..5f19898 100644
--- a/BuildTools/SCons/Tools/AppBundle.py
+++ b/BuildTools/SCons/Tools/AppBundle.py
@@ -1,7 +1,7 @@
import SCons.Util, os.path
def generate(env) :
- def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}, handlesXMPPURIs = False) :
+ def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}, handlesXMPPURIs = False, sparklePublicDSAKey = None) :
bundleDir = bundle + ".app"
bundleContentsDir = bundleDir + "/Contents"
resourcesDir = bundleContentsDir + "/Resources"
@@ -44,6 +44,11 @@ def generate(env) :
</array>
</dict>
</array>\n"""
+
+ if sparklePublicDSAKey :
+ plist += "<key>SUPublicDSAKeyFile</key>"
+ plist += "<string>" + sparklePublicDSAKey.name.encode("utf-8") + "</string>"
+ env.Install(resourcesDir, sparklePublicDSAKey)
plist += """</dict>
</plist>
"""