aboutsummaryrefslogtreecommitdiff
path: root/macosx
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-09-27 02:30:51 -0400
committerShawn O. Pearce <spearce@spearce.org>2007-09-27 22:17:00 -0400
commit72a8e81d457a1ee1283817d03d8e28303c2b4e7e (patch)
tree4022e4760b5c5b6d92fe6489d520a6a3ef0e3562 /macosx
parent1bdd8a153528b539fdaed23c18e87a374b1f3ff8 (diff)
downloadgit-72a8e81d457a1ee1283817d03d8e28303c2b4e7e.tar.gz
git-72a8e81d457a1ee1283817d03d8e28303c2b4e7e.tar.xz
git-gui: Support a native Mac OS X application bundle
If we are building on Darwin (sometimes known as Mac OS X) and we find the Mac OS X Tk.framework in the expected location we build a proper Mac OS X application bundle with icons and info list. The git-gui and git-citool commands are modified to be very short shell scripts that just execute the application bundle, starting Tk with our own info list and icon set. Although the Makefile change here is rather large it makes for a much more pleasant user experience on Mac OS X as git-gui now has its own icon on the dock, in the standard tk_messageBox dialogs, and the application name now says "Git Gui" instead of "Wish" in locations such as the menu bar and the alt-tab window. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'macosx')
-rw-r--r--macosx/AppMain.tcl22
-rw-r--r--macosx/Info.plist28
-rw-r--r--macosx/git-gui.icnsbin0 -> 28866 bytes
3 files changed, 50 insertions, 0 deletions
diff --git a/macosx/AppMain.tcl b/macosx/AppMain.tcl
new file mode 100644
index 000000000..41ca08e2b
--- /dev/null
+++ b/macosx/AppMain.tcl
@@ -0,0 +1,22 @@
+set gitexecdir {@@gitexecdir@@}
+set gitguilib {@@GITGUI_LIBDIR@@}
+set env(PATH) "$gitexecdir:$env(PATH)"
+
+if {[string first -psn [lindex $argv 0]] == 0} {
+ lset argv 0 [file join $gitexecdir git-gui]
+}
+
+if {[file tail [lindex $argv 0]] eq {gitk}} {
+ set argv0 [file join $gitexecdir gitk]
+ set AppMain_source $argv0
+} else {
+ set argv0 [file join $gitexecdir [file tail [lindex $argv 0]]]
+ set AppMain_source [file join $gitguilib git-gui.tcl]
+ if {[pwd] eq {/}} {
+ cd $env(HOME)
+ }
+}
+
+unset gitexecdir gitguilib
+set argv [lrange $argv 1 end]
+source $AppMain_source
diff --git a/macosx/Info.plist b/macosx/Info.plist
new file mode 100644
index 000000000..99913ec57
--- /dev/null
+++ b/macosx/Info.plist
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>Wish</string>
+ <key>CFBundleGetInfoString</key>
+ <string>Git Gui @@GITGUI_VERSION@@ © 2006-2007 Shawn Pearce, et. al.</string>
+ <key>CFBundleIconFile</key>
+ <string>git-gui.icns</string>
+ <key>CFBundleIdentifier</key>
+ <string>cz.or.repo.git-gui</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>Git Gui</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>@@GITGUI_VERSION@@</string>
+ <key>CFBundleSignature</key>
+ <string>GITg</string>
+ <key>CFBundleVersion</key>
+ <string>@@GITGUI_VERSION@@</string>
+</dict>
+</plist>
diff --git a/macosx/git-gui.icns b/macosx/git-gui.icns
new file mode 100644
index 000000000..77d88a77a
--- /dev/null
+++ b/macosx/git-gui.icns
Binary files differ