mirror of
https://github.com/alexkay/spek.git
synced 2025-06-10 20:32:12 +03:00
[osx] First half-functioning version of the OS X installer
This commit is contained in:
parent
2ef711ab21
commit
8eb05be739
30
osx/Info.plist
Normal file
30
osx/Info.plist
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?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>Spek</string>
|
||||||
|
<key>CFBundleGetInfoString</key>
|
||||||
|
<string>0.4, (C) 2010 Alexander Kojevnikov</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>Spek.icns</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>org.spek-project</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>0.4</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>0.4</string>
|
||||||
|
<key>NSHumanReadableCopyright</key>
|
||||||
|
<string>Copyright 2010 Alexander Kojevnikov, GNU General Public License.</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>10.4</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
2
osx/gtkrc
Normal file
2
osx/gtkrc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
gtk-icon-theme-name = "Tango"
|
||||||
|
gtk-enable-mnemonics = 0
|
129
osx/launcher.sh
Executable file
129
osx/launcher.sh
Executable file
@ -0,0 +1,129 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if test "x$IGE_DEBUG_LAUNCHER" != x; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$IGE_DEBUG_GDB" != x; then
|
||||||
|
EXEC="gdb --args"
|
||||||
|
else
|
||||||
|
EXEC=exec
|
||||||
|
fi
|
||||||
|
|
||||||
|
name="`basename $0`"
|
||||||
|
tmp="`pwd`/$0"
|
||||||
|
tmp=`dirname "$tmp"`
|
||||||
|
tmp=`dirname "$tmp"`
|
||||||
|
bundle=`dirname "$tmp"`
|
||||||
|
bundle_contents="$bundle"/Contents
|
||||||
|
bundle_res="$bundle_contents"/Resources
|
||||||
|
bundle_lib="$bundle_res"/lib
|
||||||
|
bundle_bin="$bundle_res"/bin
|
||||||
|
bundle_data="$bundle_res"/share
|
||||||
|
bundle_etc="$bundle_res"/etc
|
||||||
|
|
||||||
|
export DYLD_LIBRARY_PATH="$bundle_lib"
|
||||||
|
export XDG_CONFIG_DIRS="$bundle_etc"/xdg
|
||||||
|
export XDG_DATA_DIRS="$bundle_data"
|
||||||
|
export GTK_DATA_PREFIX="$bundle_res"
|
||||||
|
export GTK_EXE_PREFIX="$bundle_res"
|
||||||
|
export GTK_PATH="$bundle_res"
|
||||||
|
|
||||||
|
export GTK2_RC_FILES="$bundle_etc/gtk-2.0/gtkrc"
|
||||||
|
export GTK_IM_MODULE_FILE="$bundle_etc/gtk-2.0/gtk.immodules"
|
||||||
|
export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders"
|
||||||
|
export PANGO_RC_FILE="$bundle_etc/pango/pangorc"
|
||||||
|
|
||||||
|
# Set the locale-related variables appropriately:
|
||||||
|
unset LANG LC_MESSAGES LC_MONETARY
|
||||||
|
|
||||||
|
# Start by trying the Collation preference, in case it's the only setting that exists.
|
||||||
|
APPLECOLLATION=`defaults read .GlobalPreferences AppleCollationOrder`
|
||||||
|
if test "${APPLECOLLATION}"; then
|
||||||
|
COLL=`ls -d /usr/share/locale/${APPLECOLLATION}*.UTF-8 2>> /dev/null`
|
||||||
|
if test "${COLL}"; then
|
||||||
|
# $COLL is potentially multi-line; concatenate lines by not using quotes.
|
||||||
|
export LANG=`echo ${COLL} | awk '{print $1}' | awk -F/ '{print $5}'`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
unset APPLECOLLATION COLL
|
||||||
|
|
||||||
|
# Continue by attempting to find the Locale preference.
|
||||||
|
APPLELOCALE=`defaults read .GlobalPreferences AppleLocale`
|
||||||
|
if test "${APPLELOCALE}"; then
|
||||||
|
LOCALELANG=`echo "${APPLELOCALE}" | awk -F@ '{print $1".UTF-8"}'`
|
||||||
|
if test -d "/usr/share/locale/${LOCALELANG}"; then
|
||||||
|
export LANG="${LOCALELANG}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
unset LOCALELANG
|
||||||
|
|
||||||
|
# If there is still no locale value, then set US English as a default.
|
||||||
|
if test -z "${LANG}"; then
|
||||||
|
export LANG=en_US.UTF-8
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The AppleLocale setting may contain a currency-related substring.
|
||||||
|
# Attempt to act on it.
|
||||||
|
# First strip the string to just the currency symbol and the language symbol
|
||||||
|
APPLECURRENCY=`echo "${APPLELOCALE}" | awk -F= '{print $2}'`
|
||||||
|
APPLELANG=`echo "${APPLELOCALE}" | awk -F_ '{print $1}'`
|
||||||
|
if test "${APPLECURRENCY}"; then
|
||||||
|
# The user has set a currency different from that of their locale.
|
||||||
|
# Search for a locale that uses that currency, and set LC_MONETARY accordingly.
|
||||||
|
|
||||||
|
# First try to find an LC_MONETARY file that combines the language with the currency.
|
||||||
|
FILES=`find /usr/share/locale/${APPLELANG}*UTF-8 -name LC_MONETARY -exec grep -H $APPLECURRENCY {} \;`
|
||||||
|
if test -z "$FILES"; then
|
||||||
|
# Otherwise try to find any LC_MONETARY file that uses that currency.
|
||||||
|
FILES=`find /usr/share/locale/*UTF-8 -name LC_MONETARY -exec grep -H $APPLECURRENCY {} \;`
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$FILES"; then
|
||||||
|
# We found a locale that matches; set LC_MONETARY.
|
||||||
|
export LC_MONETARY=`echo ${FILES} | awk -F: '{print $1}' | awk -F/ '{print $5}'`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
unset APPLECURRENCY APPLELANG APPLELOCALE FILES
|
||||||
|
|
||||||
|
# Has a language ordering been set?
|
||||||
|
# If so, set LC_MESSAGES accordingly; otherwise skip it.
|
||||||
|
APPLELANGUAGES=`defaults read .GlobalPreferences AppleLanguages | awk 'length > 2' | awk -F, '{print $1}' | sed s/\ //g | sed s/-/_/ | sed s/\"//g`
|
||||||
|
if test "$APPLELANGUAGES"; then
|
||||||
|
# A language ordering exists.
|
||||||
|
# Test, item per item, to see whether there is an corresponding locale.
|
||||||
|
for L in $APPLELANGUAGES
|
||||||
|
do
|
||||||
|
POS=`echo ${L} | awk '{print index(ENVIRON["LANG"], $0)}'`
|
||||||
|
if test $POS -eq 1; then
|
||||||
|
# The language symbol is a subset of the $LANG variable. We're done!
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
# NOTE: the following may fail for the alternate Chinese localizations.
|
||||||
|
LC=`ls -d /usr/share/locale/${L}*.UTF-8 2>> /dev/null`
|
||||||
|
# $LC is potentially multi-line; concatenate lines by not using quotes.
|
||||||
|
if test $LC; then
|
||||||
|
# There is a UTF-8 locale matching this language.
|
||||||
|
export LC_MESSAGES=`echo ${LC} | awk '{print $1}' | awk -F/ '{print $5}'`
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unset APPLELANGUAGES POS LC L
|
||||||
|
|
||||||
|
if test -f "$bundle_lib/charset.alias"; then
|
||||||
|
export CHARSETALIASDIR="$bundle_lib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extra arguments can be added in environment.sh.
|
||||||
|
EXTRA_ARGS=
|
||||||
|
if test -f "$bundle_res/environment.sh"; then
|
||||||
|
source "$bundle_res/environment.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Strip out the argument added by the OS.
|
||||||
|
if [ x`echo "x$1" | sed -e "s/^x-psn_.*//"` == x ]; then
|
||||||
|
shift 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
$EXEC "$bundle_contents/MacOS/$name-bin" $* $EXTRA_ARGS
|
88
osx/spek.bundle
Normal file
88
osx/spek.bundle
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||||
|
<app-bundle>
|
||||||
|
|
||||||
|
<meta>
|
||||||
|
<prefix name="default">${env:JHBUILD_PREFIX}</prefix>
|
||||||
|
|
||||||
|
<destination overwrite="yes">${env:HOME}/Desktop</destination>
|
||||||
|
|
||||||
|
<image>
|
||||||
|
<!-- Not implemented yet (DMG image). -->
|
||||||
|
</image>
|
||||||
|
|
||||||
|
<!-- Comment this out to keep the install names in binaries -->
|
||||||
|
<run-install-name-tool/>
|
||||||
|
|
||||||
|
<launcher-script>${project}/launcher.sh</launcher-script >
|
||||||
|
|
||||||
|
</meta>
|
||||||
|
|
||||||
|
<plist>${project}/Info.plist</plist>
|
||||||
|
|
||||||
|
<main-binary>${prefix}/bin/spek</main-binary>
|
||||||
|
|
||||||
|
<!-- Copy in GTK+ modules. Note the use of the
|
||||||
|
"${pkg:module:variable}" macro, which evaluates to a pkg-config
|
||||||
|
variable in the specified module. Note that any libraries that
|
||||||
|
binaries link to are also copied in automatically.
|
||||||
|
-->
|
||||||
|
<binary>
|
||||||
|
${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/loaders/*.so
|
||||||
|
</binary>
|
||||||
|
|
||||||
|
<!-- Copy in GTK+ theme engines. Dunno why this is a dupe of
|
||||||
|
modules, but that's why it's commented out. >
|
||||||
|
<binary>
|
||||||
|
${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/loaders/*.so
|
||||||
|
</binary -->
|
||||||
|
|
||||||
|
<!-- Translation filenames, one for each program or library that you
|
||||||
|
want to copy in to the bundle. The "dest" attribute is
|
||||||
|
optional, as usual. Bundler will find all translations of that
|
||||||
|
library/program under the indicated directory and copy them.-->
|
||||||
|
<translations dest="${bundle}/Contents/Resources" name="gtk20">
|
||||||
|
${prefix}/share/locale
|
||||||
|
</translations>
|
||||||
|
|
||||||
|
<!-- Data to copy in, usually Glade/UI files, images, sounds files
|
||||||
|
etc. The destination inside the bundle can be specified if the
|
||||||
|
files should end up at a different location, by using the
|
||||||
|
"dest" property. The destination must then start with the macro
|
||||||
|
"${bundle}", which refers to the bundle root directory.
|
||||||
|
-->
|
||||||
|
<!-- data>
|
||||||
|
${prefix}/share/giggle
|
||||||
|
</data -->
|
||||||
|
|
||||||
|
<!-- Copy in the themes data. You may want to trim this to save space
|
||||||
|
in your bundle. -->
|
||||||
|
<data>
|
||||||
|
${prefix}/share/themes
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<!-- Copy icons. Note that the .icns file is an Apple format which
|
||||||
|
contains up to 4 sizes of icon. You can use
|
||||||
|
/Developer/Applications/Utilities/Icon Composer.app to import
|
||||||
|
artwork and create the file. >
|
||||||
|
<data dest="${bundle}/Contents/Resources">
|
||||||
|
${project}/Spek.icns
|
||||||
|
</data -->
|
||||||
|
|
||||||
|
<data dest="${bundle}/Contents/Resources/etc/gtk-2.0/gtkrc">
|
||||||
|
${project}/gtkrc
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<!-- Icon themes to copy. The "icons" property can be either of
|
||||||
|
"auto", "all", or "none". All or none should be
|
||||||
|
self-explanatory, while auto means that the script will try to
|
||||||
|
figure out which icons are needed. This is done by getting all
|
||||||
|
the strings from all copied binaries, and matching them against
|
||||||
|
icon names. To be safe, you should use "all". "none" is useful
|
||||||
|
if you want just the index.theme file but no icons, mostly
|
||||||
|
needed for the "hicolor" base theme.
|
||||||
|
>
|
||||||
|
<icon-theme icons="auto">
|
||||||
|
Tango
|
||||||
|
</icon-theme -->
|
||||||
|
|
||||||
|
</app-bundle>
|
Loading…
x
Reference in New Issue
Block a user