7 changed files with 241 additions and 6 deletions
@ -0,0 +1,116 @@
@@ -0,0 +1,116 @@
|
||||
#! /bin/bash |
||||
|
||||
# Copyright (C) 2019-2020 Alexandros Theodotou <alex at zrythm dot org> |
||||
|
||||
# Notes: |
||||
# 1. This script assumes you have all the dependencies |
||||
# installed using HomeBrew. |
||||
# 2. Meant to be run from the parent dir |
||||
# 3. Uses appdmg (brew install npm, npm install -g appdmg) |
||||
# 4. need to install librsvg and then reinstall gdk-pixbuf |
||||
# in brew to get svg support (or copy the pixbuf loader from |
||||
# the Cellar of libtsvg to the Cellar of gdk-pixbuf) |
||||
|
||||
# args: |
||||
# 1: version |
||||
# 2: zrythm source root dir |
||||
# 3: prefix where zrythm was installed |
||||
# 4: path to copy finished installer to |
||||
# 5: osx data dir (tools/osx) |
||||
# 6: normal prefix (where other programs are installed) |
||||
# 7: App name Zrythm or Zrythm (Trial) |
||||
# 8: App name Zrythm or Zrythm-trial |
||||
|
||||
set -e |
||||
|
||||
ZRYTHM_VERSION=$1 |
||||
ZRYTHM_SRC_DIR=$2 |
||||
ZRYTHM_INSTALL_PREFIX=$3 |
||||
FINAL_DMG_PATH=$4 |
||||
OSX_SOURCE_DATA_DIR=$5 |
||||
NORMAL_PREFIX=$6 |
||||
APP_NAME_W_SPACES=$7 |
||||
APP_NAME_NO_SPACES=$8 |
||||
WORK_ROOT=/tmp/zrythm-dmg |
||||
|
||||
rm -rf $WORK_ROOT |
||||
|
||||
# setup directory structure |
||||
APPDIR=$WORK_ROOT/$APP_NAME_NO_SPACES-buf |
||||
Contents=$APPDIR/Contents |
||||
Resources=$Contents/Resources |
||||
Bin=$Resources/bin |
||||
Share=$Resources/share |
||||
Etc=$Resources/etc |
||||
Locale=$Resources/share/locale |
||||
Lib=$Resources/lib |
||||
|
||||
echo "Building new app directory structure ..." |
||||
mkdir -p $Contents/MacOS |
||||
mkdir -p $Etc |
||||
mkdir -p $Locale |
||||
mkdir -p $Lib |
||||
mkdir -p $Bin |
||||
|
||||
# copy static files |
||||
echo "copying plists" |
||||
sed "s/@VERSION@/$ZRYTHM_VERSION/" < \ |
||||
$OSX_SOURCE_DATA_DIR/Info.plist.in > $Contents/Info.plist |
||||
cp $Contents/Info.plist $OSX_SOURCE_DATA_DIR/Info.plist |
||||
|
||||
THEMES_DIR="$Share/themes" |
||||
mkdir -p "$THEMES_DIR" |
||||
cp -RL "$NORMAL_PREFIX/share/themes/Default" "$THEMES_DIR/" |
||||
|
||||
echo "copying Adwaita icons" |
||||
ICONS_DIR="$Share/icons" |
||||
mkdir -p "$ICONS_DIR" |
||||
cp -RL "$NORMAL_PREFIX/share/icons/Adwaita" "$ICONS_DIR/" |
||||
|
||||
echo "copying existing hicolor icons" |
||||
cp -RL "$NORMAL_PREFIX/share/icons/hicolor" "$ICONS_DIR/" |
||||
|
||||
echo "copying app icon" |
||||
APPICON_DIR1=$ICONS_DIR/hicolor/scalable/apps |
||||
APPICON_DIR2=$ICONS_DIR/hicolor/48x48/apps |
||||
mkdir -p $APPICON_DIR1 |
||||
mkdir -p $APPICON_DIR2 |
||||
cp $ZRYTHM_SRC_DIR/resources/icons/zrythm/zrythm.svg $APPICON_DIR1/ |
||||
cp $ZRYTHM_SRC_DIR/resources/icons/zrythm/zrythm.svg $APPICON_DIR2/ |
||||
|
||||
SCHEMAS_DIR="glib-2.0/schemas" |
||||
mkdir -p $Share/$SCHEMAS_DIR |
||||
cp $NORMAL_PREFIX/share/$SCHEMAS_DIR/org.zrythm*.xml \ |
||||
"$Share/$SCHEMAS_DIR/" |
||||
cp $NORMAL_PREFIX/share/$SCHEMAS_DIR/org.gtk.*.xml \ |
||||
"$Share/$SCHEMAS_DIR/" |
||||
echo "building schemas" |
||||
glib-compile-schemas "$Share/$SCHEMAS_DIR/" |
||||
|
||||
# add license, readme, third party info |
||||
cp $ZRYTHM_SRC_DIR/README.md $Resources/ |
||||
cp $ZRYTHM_SRC_DIR/COPYING* $Resources/ |
||||
brew list --versions -1 -v > $Resources/THIRDPARTY_INFO.txt |
||||
|
||||
sed "s|@NORMAL_PREFIX@|$NORMAL_PREFIX|" < \ |
||||
$OSX_SOURCE_DATA_DIR/zrythm.bundle.in > $WORK_ROOT/zrythm.bundle |
||||
sed -i -e "s|@ZRYTHM_PREFIX@|$ZRYTHM_INSTALL_PREFIX|" $WORK_ROOT/zrythm.bundle |
||||
sed -i -e "s|@BUNDLE_DEST@|$WORK_ROOT|" $WORK_ROOT/zrythm.bundle |
||||
sed -i -e "s|@OSX_DATA_DIR@|$OSX_SOURCE_DATA_DIR|" $WORK_ROOT/zrythm.bundle |
||||
sed -i -e "s|@BUFFER@|$APPDIR|" $WORK_ROOT/zrythm.bundle |
||||
gtk-mac-bundler $WORK_ROOT/zrythm.bundle |
||||
|
||||
# make dmg |
||||
echo "making dmg from .app" |
||||
rm -f $FINAL_DMG_PATH |
||||
mkdir -p $(dirname "$FINAL_DMG_PATH") |
||||
sed "s|@APP_PATH@|$APPDIR|" < \ |
||||
$OSX_SOURCE_DATA_DIR/appdmg.json.in > $WORK_ROOT/appdmg.json |
||||
sed -i -e "s|@APPNAME@|$APP_NAME_W_SPACES|" $WORK_ROOT/appdmg.json |
||||
sed -i -e "s|@ICNS_PATH@|$Resources/zrythm.icns|" \ |
||||
$WORK_ROOT/appdmg.json |
||||
cat $WORK_ROOT/appdmg.json |
||||
appdmg $WORK_ROOT/appdmg.json $FINAL_DMG_PATH |
||||
rm -f $WORK_ROOT/appdmg.json |
||||
echo "Done." |
||||
exit |
@ -0,0 +1,106 @@
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0"?> <!--*- mode: xml -*--> |
||||
<app-bundle> |
||||
<meta> |
||||
<prefix name="default">/usr/local/opt/gtk+3</prefix> |
||||
<prefix name="atk">/usr/local/opt/atk</prefix> |
||||
<prefix name="cairo">/usr/local/opt/cairo</prefix> |
||||
<prefix name="fftw">/usr/local/opt/fftw</prefix> |
||||
<prefix name="flac">/usr/local/opt/flac</prefix> |
||||
<prefix name="fontconfig">/usr/local/opt/fontconfig</prefix> |
||||
<prefix name="freetype">/usr/local/opt/freetype</prefix> |
||||
<prefix name="fribidi">/usr/local/opt/fribidi</prefix> |
||||
<prefix name="gcc">/usr/local/opt/gcc</prefix> |
||||
<prefix name="gdk-pixbuf">/usr/local/opt/gdk-pixbuf</prefix> |
||||
<prefix name="gettext">/usr/local/opt/gettext</prefix> |
||||
<prefix name="glib">/usr/local/opt/glib</prefix> |
||||
<prefix name="graphite2">/usr/local/opt/graphite2</prefix> |
||||
<prefix name="harfbuzz">/usr/local/opt/harfbuzz</prefix> |
||||
<prefix name="jpeg">/usr/local/opt/jpeg</prefix> |
||||
<prefix name="libcroco">/usr/local/opt/libcroco</prefix> |
||||
<prefix name="libepoxy">/usr/local/opt/libepoxy</prefix> |
||||
<prefix name="libffi">/usr/local/opt/libffi</prefix> |
||||
<prefix name="libogg">/usr/local/opt/libogg</prefix> |
||||
<prefix name="libpng">/usr/local/opt/libpng</prefix> |
||||
<prefix name="librsvg">/usr/local/opt/librsvg</prefix> |
||||
<prefix name="libsamplerate">/usr/local/opt/libsamplerate</prefix> |
||||
<prefix name="libsndfile">/usr/local/opt/libsndfile</prefix> |
||||
<prefix name="libtiff">/usr/local/opt/libtiff</prefix> |
||||
<prefix name="libvorbis">/usr/local/opt/libvorbis</prefix> |
||||
<prefix name="libyaml">/usr/local/opt/libyaml</prefix> |
||||
<prefix name="lilv">/usr/local/opt/lilv</prefix> |
||||
<prefix name="pango">/usr/local/opt/pango</prefix> |
||||
<prefix name="pcre">/usr/local/opt/pcre</prefix> |
||||
<prefix name="pixman">/usr/local/opt/pixman</prefix> |
||||
<prefix name="rubberband">/usr/local/opt/rubberband</prefix> |
||||
<prefix name="sdl2">/usr/local/opt/sdl2</prefix> |
||||
<prefix name="serd">/usr/local/opt/serd</prefix> |
||||
<prefix name="sord">/usr/local/opt/sord</prefix> |
||||
<prefix name="sratom">/usr/local/opt/sratom</prefix> |
||||
|
||||
<!-- The project directory is the default location of the created |
||||
app. If you leave out the path, the current directory is |
||||
used. Note the usage of an environment variable here again. |
||||
--> |
||||
<destination overwrite="yes">@BUNDLE_DEST@</destination> |
||||
|
||||
<run-install-name-tool/> |
||||
|
||||
<!-- Optionally specify a launcher script to use. Builtin script is used if not specified. --> |
||||
<launcher-script>@OSX_DATA_DIR@/launcher.sh</launcher-script> |
||||
|
||||
<gtk>gtk+-3.0</gtk> |
||||
</meta> |
||||
|
||||
<plist>@BUFFER@/Contents/Info.plist</plist> |
||||
|
||||
<!-- The executable for the application --> |
||||
<main-binary dest="${bundle}/bin">@ZRYTHM_PREFIX@/bin/zrythm</main-binary> |
||||
|
||||
<!-- Modules for GTK+ (image loaders, etc) --> |
||||
<binary>${prefix}/lib/gtk-3.0</binary> |
||||
|
||||
<!-- Starting with 2.24, gdk-pixbuf installs into its own directory. --> |
||||
<binary> |
||||
${prefix:gdk-pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/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 name="gtk30"> |
||||
${prefix}/share/locale |
||||
</translations> |
||||
|
||||
<data dest="${bundle}/Contents/Resources/share"> |
||||
@ZRYTHM_PREFIX@/share |
||||
</data> |
||||
|
||||
<!-- Copy in the themes data. You may want to trim this to save space |
||||
in your bundle. --> |
||||
<data dest="${bundle}/Contents/Resources/share/themes"> |
||||
@BUFFER@/Contents/Resources/share/themes |
||||
</data> |
||||
|
||||
<data dest="${bundle}/Contents/Resources/share/icons"> |
||||
@BUFFER@/Contents/Resources/share/icons |
||||
</data> |
||||
<data dest="${bundle}/Contents/Resources/share/glib-2.0/schemas"> |
||||
@BUFFER@/Contents/Resources/share/glib-2.0/schemas |
||||
</data> |
||||
|
||||
<data dest="${bundle}/Contents/Resources"> |
||||
@OSX_DATA_DIR@/zrythm.icns |
||||
</data> |
||||
|
||||
<data dest="${bundle}/Contents/Resources"> |
||||
@BUFFER@/Contents/Resources/README.md |
||||
</data> |
||||
<data dest="${bundle}/Contents/Resources"> |
||||
@BUFFER@/Contents/Resources/COPYING |
||||
</data> |
||||
<data dest="${bundle}/Contents/Resources"> |
||||
@BUFFER@/Contents/Resources/THIRDPARTY_INFO.txt |
||||
</data> |
||||
|
||||
</app-bundle> |
Loading…
Reference in new issue