mirror of
https://github.com/alexkay/spek.git
synced 2026-11-12 02:22:26 +03:00
[osx] Switch to bockbuild
This commit is contained in:
1 parent
eec648b619
commit
e62d0fa90c
12 files changed
+541
-224
No files matched your search
@@ -9,6 +9,7 @@ data/spek.desktop
|
||||
data/spek.desktop.in
|
||||
depcomp
|
||||
.deps
|
||||
.DS_Store
|
||||
install-sh
|
||||
intltool-extract.in
|
||||
intltool-merge.in
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
class SpekPackage (Package):
|
||||
def __init__ (self):
|
||||
Package.__init__ (self, 'spek', '0.4')
|
||||
|
||||
self.sources = [
|
||||
'http://%{name}.googlecode.com/files/%{name}-%{version}.tar.bz2'
|
||||
]
|
||||
|
||||
SpekPackage ()
|
||||
@@ -0,0 +1,74 @@
|
||||
import os
|
||||
from bockbuild.darwinprofile import DarwinProfile
|
||||
|
||||
class SpekPackages:
|
||||
def __init__ (self):
|
||||
# Toolchain
|
||||
self.packages.extend ([
|
||||
'autoconf.py',
|
||||
'automake.py',
|
||||
'libtool.py',
|
||||
'gettext.py',
|
||||
'pkg-config.py',
|
||||
])
|
||||
|
||||
# Base Libraries
|
||||
self.packages.extend ([
|
||||
# 'libiconv.py',
|
||||
'libpng.py',
|
||||
'libjpeg.py',
|
||||
'libxml2.py',
|
||||
'freetype.py',
|
||||
'fontconfig.py',
|
||||
'pixman.py',
|
||||
'cairo.py',
|
||||
'glib.py',
|
||||
'pango.py',
|
||||
'atk.py',
|
||||
'intltool.py',
|
||||
'gtk+.py',
|
||||
'libproxy.py',
|
||||
'libsoup.py',
|
||||
])
|
||||
|
||||
# Theme
|
||||
self.packages.extend ([
|
||||
'librsvg.py',
|
||||
'icon-naming-utils.py',
|
||||
'hicolor-icon-theme.py',
|
||||
# 'tango-icon-theme.py',
|
||||
'murrine.py',
|
||||
])
|
||||
|
||||
# Codecs
|
||||
self.packages.extend ([
|
||||
'libogg.py',
|
||||
'libvorbis.py',
|
||||
'flac.py',
|
||||
'libtheora.py',
|
||||
'speex.py',
|
||||
'wavpack.py',
|
||||
'taglib.py',
|
||||
])
|
||||
|
||||
# GStreamer
|
||||
self.packages.extend ([
|
||||
'liboil.py',
|
||||
'gstreamer.py',
|
||||
'gst-plugins-base.py',
|
||||
'gst-plugins-good.py',
|
||||
'gst-plugins-bad.py',
|
||||
'gst-plugins-ugly.py',
|
||||
# 'gst-ffmpeg',
|
||||
])
|
||||
|
||||
if isinstance (self, DarwinProfile):
|
||||
self.packages.extend ([
|
||||
'ige-mac-integration.py'
|
||||
])
|
||||
|
||||
if self.cmd_options.release_build:
|
||||
self.packages.append ('spek.py')
|
||||
|
||||
self.packages = [os.path.join ('..', '..', 'packages', p)
|
||||
for p in self.packages]
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/python -B
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.append ('../..')
|
||||
|
||||
from bockbuild.darwinprofile import DarwinProfile
|
||||
from packages import SpekPackages
|
||||
|
||||
class SpekDarwinProfile (DarwinProfile, SpekPackages):
|
||||
def __init__ (self):
|
||||
DarwinProfile.__init__ (self)
|
||||
SpekPackages.__init__ (self)
|
||||
|
||||
self_dir = os.path.realpath (os.path.dirname (sys.argv[0]))
|
||||
self.bundle_skeleton_dir = os.path.join (self_dir, 'skeleton.darwin')
|
||||
self.bundle_output_dir = os.path.join (self_dir, 'bundle.darwin')
|
||||
|
||||
self.bundle_from_build = [
|
||||
'bin/spek',
|
||||
'lib/pango',
|
||||
'lib/gtk-2.0/2.10.0/loaders',
|
||||
'lib/gtk-2.0/2.10.0/engines',
|
||||
'lib/gtk-2.0/2.10.0/immodules',
|
||||
'lib/gstreamer-0.10',
|
||||
'share/spek',
|
||||
# 'share/locale',
|
||||
'share/icons/hicolor/index.theme',
|
||||
# 'share/icons/Tango/index.theme',
|
||||
]
|
||||
|
||||
self.bundle_from_build.extend ([
|
||||
'share/icons/%s/%sx%s' % (theme, size, size)
|
||||
for size in [16, 22, 32, 48]
|
||||
# for theme in ['hicolor', 'Tango']
|
||||
for theme in ['hicolor']
|
||||
])
|
||||
|
||||
SpekDarwinProfile ().build ()
|
||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
APP_ROOT="$PWD/$(dirname "$0")"
|
||||
for ((i=0; i<2; i++)); do APP_ROOT="$(dirname "$APP_ROOT")"; done
|
||||
APP_ROOT="${APP_ROOT/\/\/}"
|
||||
|
||||
# Bundle directories
|
||||
CONTENTS_DIR="$APP_ROOT/Contents"
|
||||
RES_DIR="$CONTENTS_DIR/Resources"
|
||||
ETC_DIR="$RES_DIR/etc"
|
||||
LIB_DIR="$RES_DIR/lib"
|
||||
BIN_DIR="$RES_DIR/bin"
|
||||
DATA_DIR="$RES_DIR/share"
|
||||
|
||||
# Shell environment
|
||||
export PATH="/bin:/usr/bin:$BIN_DIR"
|
||||
export BUNDLE_BIN_DIR="$BIN_DIR"
|
||||
export BUNDLE_LIB_DIR="$LIB_DIR"
|
||||
|
||||
# XDG environment
|
||||
export XDG_CONFIG_DIRS="$ETC_DIR/xdg"
|
||||
export XDG_DATA_DIRS="$DATA_DIR"
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
|
||||
# GTK environment
|
||||
export GTK_PATH="$RES_DIR"
|
||||
export GTK_EXE_PREFIX="$RES_DIR"
|
||||
export GTK_DATA_PREFIX="$RES_DIR"
|
||||
export GTK2_RC_FILES="$ETC_DIR/gtk-2.0/gtkrc"
|
||||
export GTK_IM_MODULE_FILE="$ETC_DIR/gtk-2.0/gtk.immodules"
|
||||
export GDK_PIXBUF_MODULE_FILE="$ETC_DIR/gtk-2.0/gdk-pixbuf.loaders"
|
||||
export PANGO_RC_FILE="$ETC_DIR/pango/pangorc"
|
||||
|
||||
# Spek/GStreamer environment
|
||||
export DYLD_LIBRARY_PATH="$LIB_DIR"
|
||||
export GST_PLUGIN_SYSTEM_PATH="$LIB_DIR/gstreamer-0.10"
|
||||
export SPEK_CONFIG_DIR="$XDG_CONFIG_HOME/spek"
|
||||
SPEK_OPTIONS=""
|
||||
SPEK_EXEC_NAME=Spek
|
||||
SPEK_BIN="$BIN_DIR/spek"
|
||||
|
||||
# FIXME
|
||||
# pango.modules sucks - it doesn't like paths with spaces,
|
||||
# so even though everything else works fine, we still
|
||||
# will explode, so instead I'm just showing this lame dialog.
|
||||
if [[ "$APP_ROOT" =~ [[:space:]] ]]; then
|
||||
osascript &>/dev/null <<EOF
|
||||
tell application "System Events"
|
||||
activate
|
||||
display dialog "A space was detected in the path to Spek. Currently this is unsupported.\n\nRename or move Spek.app to a path without spaces.\n\nPath: $APP_ROOT" with title "Error" with icon caution buttons { "OK" } default button 1
|
||||
end tell
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# mkdir -p "$SPEK_CONFIG_DIR"
|
||||
|
||||
exec -a $SPEK_EXEC_NAME "$SPEK_BIN"
|
||||
@@ -0,0 +1,325 @@
|
||||
# Mac OS X friendly theme
|
||||
# Written by Aaron Bockover <abockover@novell.com>
|
||||
# Copyright 2010 Novell, Inc.
|
||||
# Released under the MIT/X11 license
|
||||
|
||||
include "gtkrc.key.mac"
|
||||
|
||||
gtk-color-scheme =
|
||||
"base_color: #fff
|
||||
bg_color: #ededed
|
||||
fg_color: #000
|
||||
text_color: #000
|
||||
selected_bg_color: #7b8ea0
|
||||
selected_fg_color: #fff
|
||||
tooltip_bg_color: #f7f4b8
|
||||
tooltip_fg_color: #000
|
||||
"
|
||||
gtk-font-name = "Lucida Grande 14"
|
||||
gtk-icon-theme-name = "Tango"
|
||||
gtk-menu-popup-delay = 1
|
||||
gtk-button-images = 0
|
||||
gtk-menu-images = 0
|
||||
gtk-enable-mnemonics = 0
|
||||
|
||||
style "murrine-default" {
|
||||
xthickness = 1
|
||||
ythickness = 1
|
||||
|
||||
GtkCheckButton::indicator-size = 14
|
||||
GtkPaned::handle-size = 6
|
||||
|
||||
GtkButton::child-displacement-x = 0
|
||||
GtkButton::child-displacement-y = 0
|
||||
GtkButton::default-border = { 0, 0, 0, 0 }
|
||||
|
||||
GtkRange::trough-border = 2
|
||||
GtkRange::slider-width = 14
|
||||
GtkRange::stepper-size = 13
|
||||
|
||||
GtkScale::slider-length = 15
|
||||
GtkScale::trough-side-details = 0
|
||||
|
||||
GtkScrollbar::min-slider-length = 35
|
||||
GtkScrollbar::has-forward-stepper = 1
|
||||
GtkScrollbar::has-backward-stepper = 0
|
||||
GtkScrollbar::has-secondary-forward-stepper = 0
|
||||
GtkScrollbar::has-secondary-backward-stepper = 1
|
||||
|
||||
GtkExpander::expander-size = 16
|
||||
GtkToolbar::internal-padding = 0
|
||||
GtkTreeView::expander-size = 14
|
||||
# GtkTreeView::vertical-separator = 0
|
||||
|
||||
GtkMenuBar::internal-padding = 0
|
||||
GtkMenu::horizontal-padding = 0
|
||||
GtkMenu::vertical-padding = 0
|
||||
GtkMenuItem::horizontal-padding = 10
|
||||
|
||||
fg[NORMAL] = @fg_color
|
||||
fg[PRELIGHT] = @fg_color
|
||||
fg[SELECTED] = @selected_fg_color
|
||||
fg[ACTIVE] = @fg_color
|
||||
fg[INSENSITIVE] = darker (@bg_color)
|
||||
|
||||
bg[NORMAL] = @bg_color
|
||||
bg[PRELIGHT] = shade (1.02, @bg_color)
|
||||
bg[SELECTED] = @selected_bg_color
|
||||
bg[INSENSITIVE] = @bg_color
|
||||
bg[ACTIVE] = shade (1.04, @bg_color)
|
||||
|
||||
base[NORMAL] = @base_color
|
||||
base[PRELIGHT] = shade (0.95, @bg_color)
|
||||
base[ACTIVE] = shade (0.92, @selected_bg_color)
|
||||
base[SELECTED] = shade (0.93, @selected_bg_color)
|
||||
base[INSENSITIVE] = @bg_color
|
||||
|
||||
text[NORMAL] = @text_color
|
||||
text[PRELIGHT] = @text_color
|
||||
text[ACTIVE] = @selected_fg_color
|
||||
text[SELECTED] = @selected_fg_color
|
||||
text[INSENSITIVE] = darker (@bg_color)
|
||||
|
||||
engine "murrine" {
|
||||
profile = MURRINE
|
||||
|
||||
contrast = 0.7
|
||||
glazestyle = 3
|
||||
roundness = 3
|
||||
reliefstyle = 2
|
||||
gradients = TRUE
|
||||
gradient_shades = { 1.15, 1.07, 1.02, 0.9 }
|
||||
lightborder_shade = 1.36
|
||||
lightborderstyle = 1
|
||||
highlight_shade = 1.07
|
||||
|
||||
menubarstyle = 0
|
||||
menubaritemstyle = 0
|
||||
menuitemstyle = 0
|
||||
menustyle = 0
|
||||
|
||||
scrollbarstyle = 0
|
||||
stepperstyle = 1
|
||||
toolbarstyle = 2
|
||||
sliderstyle = 0
|
||||
|
||||
listviewheaderstyle = 1
|
||||
listviewstyle = 1
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-wide" {
|
||||
xthickness = 2
|
||||
ythickness = 2
|
||||
|
||||
bg[SELECTED] = @selected_bg_color
|
||||
}
|
||||
|
||||
style "murrine-wider" {
|
||||
xthickness = 3
|
||||
ythickness = 3
|
||||
|
||||
bg[SELECTED] = @selected_bg_color
|
||||
}
|
||||
|
||||
style "murrine-button" = "murrine-wider" {
|
||||
bg[NORMAL] = shade (1.127, @bg_color)
|
||||
bg[PRELIGHT] = shade (1.15, @bg_color)
|
||||
bg[ACTIVE] = shade (0.90, @bg_color)
|
||||
bg[INSENSITIVE] = shade (1.055, @bg_color)
|
||||
|
||||
engine "murrine" {
|
||||
contrast = 0.925
|
||||
lightborder_shade = 1.7
|
||||
gradient_shades = {1.15,1.07,1.0185,0.885}
|
||||
gradients = TRUE
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-scale" = "murrine-button" {
|
||||
GtkRange::slider-width = 14
|
||||
engine "murrine" {
|
||||
roundness = 7
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-hscale" { }
|
||||
style "murrine-vscale" { }
|
||||
|
||||
style "murrine-entry" = "murrine-wider" { }
|
||||
|
||||
style "murrine-scrollbar" {
|
||||
engine "murrine" {
|
||||
roundness = 8
|
||||
gradient_shades = { 1.11, 1.07, 1.065, 0.92 }
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-hscrollbar" { }
|
||||
style "murrine-vscrollbar" { }
|
||||
|
||||
style "murrine-progressbar"
|
||||
{
|
||||
xthickness = 0
|
||||
ythickness = 0
|
||||
|
||||
fg[PRELIGHT] = lighter (@selected_fg_color)
|
||||
bg[NORMAL] = shade (0.98, @bg_color)
|
||||
bg[SELECTED] = @selected_bg_color
|
||||
|
||||
engine "murrine" {
|
||||
roundness = 1
|
||||
lightborder_shade = 1.36
|
||||
lightborderstyle = 0
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-notebook" = "murrine-wider" {
|
||||
bg[ACTIVE] = shade (0.925, @bg_color)
|
||||
bg[NORMAL] = shade (1.135, @bg_color)
|
||||
bg[SELECTED] = @selected_bg_color
|
||||
fg[ACTIVE] = shade (0.5, @bg_color)
|
||||
|
||||
engine "murrine" {
|
||||
contrast = 0.95
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-menu" {
|
||||
xthickness = 0
|
||||
ythickness = 0
|
||||
|
||||
bg[NORMAL] = shade (1.15, @bg_color)
|
||||
|
||||
engine "murrine" {
|
||||
roundness = 0
|
||||
glazestyle = 0
|
||||
highlight_shade = 1.0
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-menu-item" {
|
||||
xthickness = 0
|
||||
ythickness = 3
|
||||
|
||||
fg[PRELIGHT] = @selected_fg_color
|
||||
bg[SELECTED] = shade (0.98, @selected_bg_color)
|
||||
|
||||
engine "murrine" {
|
||||
roundness = 0
|
||||
gradient_shades = { 1.07, 1.05, 1.04, 1.01 }
|
||||
highlight_shade = 1.0
|
||||
gradients = TRUE
|
||||
glow_shade = 1.3
|
||||
glowstyle = 0
|
||||
contrast = 0.8
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-separator-menu-item" { }
|
||||
|
||||
style "murrine-treeview" {
|
||||
bg[SELECTED] = @selected_bg_color
|
||||
}
|
||||
|
||||
style "murrine-treeview-header" = "murrine-default" {
|
||||
bg[NORMAL] = shade (1.08, @bg_color)
|
||||
bg[PRELIGHT] = shade (1.11, @bg_color)
|
||||
bg[ACTIVE] = shade (0.92, @bg_color)
|
||||
bg[INSENSITIVE] = shade (1.04, @bg_color)
|
||||
}
|
||||
|
||||
style "murrine-frame-title" {
|
||||
fg[NORMAL] = lighter (@fg_color)
|
||||
}
|
||||
|
||||
style "murrine-tooltips" = "murrine-wider" {
|
||||
bg[NORMAL] = @tooltip_bg_color
|
||||
fg[NORMAL] = @tooltip_fg_color
|
||||
}
|
||||
|
||||
style "murrine-toolbar" {
|
||||
engine "murrine" {
|
||||
gradient_shades = { 1.0, 0.98, 0.96, 0.928 }
|
||||
gradients = TRUE
|
||||
highlight_shade = 1.00
|
||||
contrast = 0.96
|
||||
}
|
||||
}
|
||||
|
||||
style "murrine-statusbar" { }
|
||||
style "murrine-comboboxentry" { }
|
||||
style "murrine-spinbutton" { }
|
||||
|
||||
style "murrine-radiocheck" = "murrine-default" {
|
||||
text[NORMAL] = "#FFFFFF"
|
||||
text[PRELIGHT] = "#FFFFFF"
|
||||
}
|
||||
|
||||
style "smaller-text" {
|
||||
font_name = "7"
|
||||
}
|
||||
|
||||
style "handle" {
|
||||
bg[NORMAL] = "#232323"
|
||||
}
|
||||
|
||||
class "GtkRadio*" style "murrine-radiocheck"
|
||||
class "GtkCheck*" style "murrine-radiocheck"
|
||||
|
||||
class "GtkWidget" style "murrine-default"
|
||||
|
||||
class "GtkToolbar" style "murrine-toolbar"
|
||||
class "GtkRange" style "murrine-wide"
|
||||
class "GtkFrame" style "murrine-wide"
|
||||
class "GtkSeparator" style "murrine-wide"
|
||||
class "GtkEntry" style "murrine-entry"
|
||||
|
||||
class "GtkSpinButton" style "murrine-spinbutton"
|
||||
class "GtkScale" style "murrine-scale"
|
||||
class "GtkVScale" style "murrine-vscale"
|
||||
class "GtkHScale" style "murrine-hscale"
|
||||
class "GtkScrollbar" style "murrine-scrollbar"
|
||||
class "GtkVScrollbar" style "murrine-vscrollbar"
|
||||
class "GtkHScrollbar" style "murrine-hscrollbar"
|
||||
|
||||
widget_class "*<GtkNotebook>*<GtkEventBox>" style "murrine-notebook"
|
||||
widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "murrine-notebook"
|
||||
widget_class "*<GtkNotebook>*<GtkLayout>" style "murrine-notebook"
|
||||
widget_class "*<GtkNotebook>*<GtkLabel>" style "murrine-notebook"
|
||||
|
||||
widget_class "*<GtkButton>" style "murrine-button"
|
||||
widget_class "*<GtkNotebook>" style "murrine-notebook"
|
||||
widget_class "*<GtkStatusbar>*" style "murrine-statusbar"
|
||||
|
||||
widget_class "*<GtkComboBoxEntry>*" style "murrine-comboboxentry"
|
||||
widget_class "*<GtkCombo>*" style "murrine-comboboxentry"
|
||||
|
||||
widget_class "*<GtkMenu>*" style "murrine-menu"
|
||||
widget_class "*<GtkMenuItem>*" style "murrine-menu-item"
|
||||
widget_class "*<GtkSeparatorMenuItem>*" style "murrine-separator-menu-item"
|
||||
|
||||
widget_class "*.<GtkFrame>.<GtkLabel>" style "murrine-frame-title"
|
||||
widget_class "*.<GtkTreeView>*" style "murrine-treeview"
|
||||
|
||||
widget_class "*<GtkProgressBar>" style "murrine-progressbar"
|
||||
|
||||
widget_class "*.<GtkTreeView>.<GtkButton>" style "murrine-treeview-header"
|
||||
widget_class "*.<GtkCTree>.<GtkButton>" style "murrine-treeview-header"
|
||||
widget_class "*.<GtkList>.<GtkButton>" style "murrine-treeview-header"
|
||||
widget_class "*.<GtkCList>.<GtkButton>" style "murrine-treeview-header"
|
||||
|
||||
widget_class "*ToolButton*" style "smaller-text"
|
||||
widget_class "*Statusbar*" style "smaller-text"
|
||||
|
||||
widget "gtk-tooltip*" style "murrine-tooltips"
|
||||
|
||||
style "murrine-menuitem-text-is-fg-color-workaround" {
|
||||
text[NORMAL] = @fg_color
|
||||
text[PRELIGHT] = @selected_fg_color
|
||||
text[SELECTED] = @selected_fg_color
|
||||
text[ACTIVE] = @fg_color
|
||||
text[INSENSITIVE] = darker (@bg_color)
|
||||
}
|
||||
|
||||
widget "*.gtk-combobox-popup-menu.*" style "murrine-menuitem-text-is-fg-color-workaround"
|
||||
+34
-42
@@ -1,49 +1,45 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script creates a Mac OS X app bundle and a DMG image from it
|
||||
# using jhbuild/ige-mac-bundler. JHBuild scripts from the GTK-OSX
|
||||
# project should be installed and properly configured.
|
||||
#
|
||||
# Also, the script assumes that all dependencies have already been built,
|
||||
# including all (not so optional) GStreamer dependencies. GStreamer plugins
|
||||
# will happily compile even if essential components such as libmad, libvorbis,
|
||||
# flac, etc are missing. Make sure you have everything that you need installed.
|
||||
#
|
||||
# Example build sequence:
|
||||
#
|
||||
# $ jhbuild bootstrap
|
||||
# $ jhbuild build
|
||||
#
|
||||
# Download GStreamer dependencies:
|
||||
# BASE: libogg, libvorbis, libtheora
|
||||
# GOOD: speex, flac, taglib, wavpack
|
||||
# This script creates a Mac OS X app bundle and a DMG image from it using bockbuild.
|
||||
# The bockbuild package should already be installed in ../../bockbuild
|
||||
|
||||
# TODO: create these packages for GStreamer:
|
||||
# BAD: orc, schroedinger, faad2, libdca, libmodplug, libmpcdec, xvid
|
||||
# UGLY: a52dec, libid3tag, libmad, libmpeg2
|
||||
#
|
||||
# Install each one with:
|
||||
#
|
||||
# $ jhbuild shell
|
||||
# $ ./configure --prefix=$PREFIX && make && make install
|
||||
# $ exit
|
||||
#
|
||||
# Install GStreamer:
|
||||
#
|
||||
# $ jhbuild build meta-gstreamer
|
||||
# $ jhbuild build gst-plugins-ugly
|
||||
#
|
||||
# IMPORTANT: the script must be run from the `jhbuild shell` environment.
|
||||
|
||||
pushd $(dirname $0)/..
|
||||
# TODO:
|
||||
# - DS_Store
|
||||
# - gtkrc tune up
|
||||
# - ffmpeg and deps above
|
||||
# - credit bockbuild
|
||||
|
||||
# Build Spek
|
||||
./configure --prefix=$PREFIX && make && make install
|
||||
pushd $(dirname $0)
|
||||
|
||||
case "$(uname)" in
|
||||
Darwin) profile_name=darwin ;;
|
||||
*)
|
||||
echo "Unsupported system type: $(uname)"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Copy Spek packages to bockbuild
|
||||
cp -prv bockbuild ..
|
||||
|
||||
# Build Spek and all its dependencies
|
||||
pushd ../bockbuild/profiles/spek
|
||||
./profile."$profile_name".py -bvr
|
||||
|
||||
# Build Solitary
|
||||
pushd ../../solitary
|
||||
make
|
||||
popd
|
||||
|
||||
# Bundle
|
||||
cd osx
|
||||
ige-mac-bundler spek.bundle
|
||||
./profile."$profile_name".py -z
|
||||
|
||||
# Make DMG image
|
||||
#./make-dmg.sh spek 0.4 spek.app
|
||||
cd bundle."$profile_name"
|
||||
VOLUME_NAME=Spek
|
||||
DMG_APP=Spek.app
|
||||
DMG_FILE=$VOLUME_NAME.dmg
|
||||
@@ -53,7 +49,7 @@ rm -f $DMG_FILE
|
||||
rm -f $DMG_FILE.master
|
||||
|
||||
# Compute an approximated image size in MB, and bloat by 1MB
|
||||
image_size=$(du -ck $DMG_APP dmg-data | tail -n1 | cut -f1)
|
||||
image_size=$(du -ck $DMG_APP | tail -n1 | cut -f1)
|
||||
image_size=$((($image_size + 5000) / 1000))
|
||||
|
||||
echo "Creating disk image (${image_size}MB)..."
|
||||
@@ -72,10 +68,6 @@ pushd $MOUNT_POINT &>/dev/null
|
||||
ln -s /Applications " "
|
||||
popd &>/dev/null
|
||||
|
||||
#mkdir $MOUNT_POINT/.background
|
||||
#cp dmg-data/background.png $MOUNT_POINT/.background
|
||||
cp dmg-data/DS_Store $MOUNT_POINT/.DS_Store
|
||||
|
||||
echo "Detaching from disk image..."
|
||||
hdiutil detach $MOUNT_POINT -quiet
|
||||
|
||||
@@ -95,4 +87,4 @@ if [ ! "x$1" = "x-m" ]; then
|
||||
rm $DMG_FILE.master
|
||||
fi
|
||||
|
||||
popd &>/dev/null
|
||||
popd &>/dev/null
|
||||
-130
@@ -1,130 +0,0 @@
|
||||
#!/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 GST_PLUGIN_PATH="$bundle_lib"/gstreamer-0.10
|
||||
|
||||
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
|
||||
@@ -1,50 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
||||
<app-bundle>
|
||||
|
||||
<meta>
|
||||
<prefix name="default">${env:JHBUILD_PREFIX}</prefix>
|
||||
|
||||
<destination overwrite="yes">${project}</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>
|
||||
|
||||
<binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/engines/*.so</binary>
|
||||
<binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/immodules/*.so</binary>
|
||||
<binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/loaders/*.so</binary>
|
||||
<binary>${prefix}/lib/gtk-2.0/${pkg:gtk+-2.0:gtk_binary_version}/printbackends/*.so</binary>
|
||||
<binary>${prefix}/lib/gstreamer-0.10/*.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>${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>
|
||||
|
||||
</app-bundle>
|
||||
Reference in new issue
Block a user