From 647213f7c9bdc5b60c863ee56302f380869befe7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Sat, 28 Nov 2009 11:19:54 +0100
Subject: Create a dist target for mac DMG bundling.


diff --git a/BuildTools/SCons/Tools/AppBundle.py b/BuildTools/SCons/Tools/AppBundle.py
index 3d06e97..12667f0 100644
--- a/BuildTools/SCons/Tools/AppBundle.py
+++ b/BuildTools/SCons/Tools/AppBundle.py
@@ -2,7 +2,8 @@ import SCons.Util
 
 def generate(env) :
   def createAppBundle(env, bundle, version = "1.0", resources = [], frameworks = [], info = {}) :
-    bundleContentsDir = bundle + ".app" + "/Contents"
+    bundleDir = bundle + ".app"
+    bundleContentsDir = bundleDir + "/Contents"
     resourcesDir = bundleContentsDir + "/Resources"
     frameworksDir = bundleContentsDir + "/Frameworks"
     env.Install(bundleContentsDir + "/MacOS", bundle)
@@ -42,6 +43,8 @@ def generate(env) :
     for framework in frameworks :
       env.Install(frameworksDir, framework)
 
+    return env.Dir(bundleDir)
+
   env.AddMethod(createAppBundle, "AppBundle")
 
 
diff --git a/Swift/QtUI/.gitignore b/Swift/QtUI/.gitignore
index b776b0d..379d4f5 100644
--- a/Swift/QtUI/.gitignore
+++ b/Swift/QtUI/.gitignore
@@ -1,2 +1,3 @@
 Swift
 BuildVersion.h
+Swift-*.dmg
diff --git a/Swift/QtUI/SConscript b/Swift/QtUI/SConscript
index b7eefaf..77bc8f8 100644
--- a/Swift/QtUI/SConscript
+++ b/Swift/QtUI/SConscript
@@ -107,7 +107,12 @@ if env["PLATFORM"] == "darwin" :
   frameworks = []
   if env["HAVE_SPARKLE"] :
     frameworks.append(env["SPARKLE_FRAMEWORK"])
-  myenv.AppBundle("Swift", version = env["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"], frameworks = frameworks)
+  app = myenv.AppBundle("Swift", version = env["SWIFT_VERSION"], resources = ["../resources/MacOSX/Swift.icns"], frameworks = frameworks)
+  if "dist" in COMMAND_LINE_TARGETS :
+    myenv.Command(["Swift-${SWIFT_VERSION}.dmg"], [app], [
+        "$QTDIR/bin/macdeployqt $SOURCE -dmg",
+        Move("$TARGET", "$SOURCE.dir/Swift.dmg")
+      ])
 
 if env.get("SWIFT_INSTALLDIR", "") :
   env.Install(os.path.join(env["SWIFT_INSTALLDIR"], "bin"), swiftProgram)
-- 
cgit v0.10.2-6-g49f6