macOS DMG Build
I was finally able to build a DMG from the latest trunk, i.e. aa3e0475
./bootstrap.sh
./configure --disable-debug \
--disable-dependency-tracking \
--disable-silent-rules \
--disable-zthreadtest \
--disable-sysinstall \
--disable-uninstall \
--disable-restoreold \
--enable-automakedefaults \
--disable-useradd \
--disable-initscripts \
--disable-etc
sh desktop/os-x/build_bundle.sh
There was only one minor problem: build_bundle.sh
was rendered as follows.
build_bundle.sh
#!/bin/bash
set -x
DIR=$1
test -z "${DIR}" && DIR="`pwd`"
TITLE="Armagetron Advanced"
BUNDLE="${DIR}/${TITLE}.app"
rm -rf "${BUNDLE}"
mkdir -p "${BUNDLE}" || exit $?
# add plist with @v@ -> value and progtitle replacements
REL_SRCDIR=`echo . | sed -e s,^../../,,` || exit $?
cp "`dirname $0`/Info.plist" "${BUNDLE}/" || exit $?
# add icons
REL_TOP_SRCDIR=`echo ../.. | sed -e s,^../../,a,` || exit $?
cp "${REL_TOP_SRCDIR}/desktop/os-x/armagetronad.icns" "${BUNDLE}/${TITLE}.icns"
# install game into bundle
DESTDIR="${BUNDLE}" make install || exit $?
# bundle libraries
(cd "${BUNDLE}"; dylibbundler -od -b -x ".//usr/local/bin/armagetronad" -d ".//usr/local/libs/" -i /usr/lib/) || exit $?
# for debugging pure app bundle builds
# exit 0
# zip
(cd "${BUNDLE}" && zip -r ../armagetronad-0.4.0_alpha_z5260.macOS.zip .) || exit $?
# pack dmg
# mkdir pack
# cp -a "${BUNDLE}" pack || exit $?
# --sandbox-safe
# --icon "$ICON" 200 190 \
# DMG_SRC=pack
DMG_SRC=${BUNDLE}
DMG="${DIR}/armagetronad-0.4.0_alpha_z5260.dmg"
rm -f "${DMG}"
ICON="${REL_TOP_SRCDIR}/desktop/os-x/armagetronad.icns"
BG="${REL_TOP_SRCDIR}/desktop/os-x/background.png"
create-dmg \
--volicon "$ICON" \
--app-drop-link 470 180 --window-pos 200 112 --window-size 650 330 \
--icon "${TITLE}.app" 220 80 \
--icon-size 100 \
--hide-extension "${TITLE}.app" \
--background ${BG} \
"${DMG}" "${DMG_SRC}" || exit $?
# alternative, native way, less powerful
# hdiutil create -volname "Armagetron Advanced" -srcfolder "${BUNDLE}" -ov -format UDIF "${DMG}"
rm -rf "${DMG_SRC}"
But since I'm running the script from the project root directory it could not find the icons and pictures for the DMG, i.e. ICON
and BG
. This is because the path points to ../..
, which is outside the project root directory.
I manually patched the REL_TOP_SRCDIR
variable to REL_TOP_SRCDIR=.
and this worked. I was able to build a working DMG on both, and x64 and amd64 MacBook.
Here are the builds:
Did I do something wrong that the build_bundle.sh
script was incorrectly populated?