2020-02-13 13:00:44 +08:00
|
|
|
#!/usr/bin/env bash
|
2013-04-14 14:09:40 +08:00
|
|
|
|
2016-05-26 01:21:05 +08:00
|
|
|
# Script to produce an OS X installer .pkg and .app(.zip)
|
|
|
|
|
2019-11-29 03:37:43 +08:00
|
|
|
VERSION=$(git describe --always --dirty 2>/dev/null)
|
2013-04-14 14:09:40 +08:00
|
|
|
if test -z "$VERSION" ; then
|
2016-04-20 14:34:12 +08:00
|
|
|
echo "Could not get version from git"
|
2019-02-28 21:08:02 +08:00
|
|
|
if test -f version; then
|
2019-11-29 03:37:43 +08:00
|
|
|
VERSION=$(cat version)
|
2019-02-28 21:08:02 +08:00
|
|
|
fi
|
2013-04-14 14:09:40 +08:00
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Version is $VERSION"
|
|
|
|
|
|
|
|
set -x
|
2012-05-10 17:11:28 +08:00
|
|
|
|
2013-04-14 14:09:40 +08:00
|
|
|
#Exit on error
|
|
|
|
set -e
|
|
|
|
|
2021-02-01 05:52:19 +08:00
|
|
|
# Respect MAC_CODESIGN_ID, or default for ad-hoc.
|
2020-02-13 13:00:44 +08:00
|
|
|
# Note the :- means "or default" and the following - is the value.
|
|
|
|
MAC_CODESIGN_ID=${MAC_CODESIGN_ID:--}
|
|
|
|
|
2019-11-29 03:37:43 +08:00
|
|
|
PKGDIR=$(mktemp -d)
|
2012-05-30 15:27:50 +08:00
|
|
|
|
2019-01-26 08:45:06 +08:00
|
|
|
SRC_DIR=$PWD
|
2016-05-26 01:21:05 +08:00
|
|
|
OUTPUT_PATH=${FISH_ARTEFACT_PATH:-~/fish_built}
|
|
|
|
|
2019-11-29 03:37:43 +08:00
|
|
|
mkdir -p "$PKGDIR/build" "$PKGDIR/root" "$PKGDIR/intermediates" "$PKGDIR/dst"
|
2020-12-06 06:34:00 +08:00
|
|
|
{ cd "$PKGDIR/build" && cmake -DMAC_INJECT_GET_TASK_ALLOW=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_GETTEXT=OFF -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DMAC_CODESIGN_ID="${MAC_CODESIGN_ID}" "$SRC_DIR" && make VERBOSE=1 -j 12 && env DESTDIR="$PKGDIR/root/" make install; }
|
2020-02-11 14:25:49 +08:00
|
|
|
pkgbuild --scripts "$SRC_DIR/build_tools/osx_package_scripts" --root "$PKGDIR/root/" --identifier 'com.ridiculousfish.fish-shell-pkg' --version "$VERSION" "$PKGDIR/intermediates/fish.pkg"
|
|
|
|
productbuild --package-path "$PKGDIR/intermediates" --distribution "$SRC_DIR/build_tools/osx_distribution.xml" --resources "$SRC_DIR/build_tools/osx_package_resources/" "$OUTPUT_PATH/fish-$VERSION.pkg"
|
2021-02-01 05:52:19 +08:00
|
|
|
|
|
|
|
# Here is the historical way to sign the installer package.
|
|
|
|
# But when run on macOS 11.1, the resulting installers don't work on 10.11.
|
|
|
|
# So we have our own script instead. See issue #7656.
|
|
|
|
# Also see https://developer.apple.com/forums/thread/664842
|
|
|
|
# If/when productsign is fixed to support 10.11, we can switch back to this.
|
|
|
|
# MAC_PRODUCTSIGN_ID=${MAC_PRODUCTSIGN_ID:--}
|
|
|
|
# productsign --sign "${MAC_PRODUCTSIGN_ID}" "$OUTPUT_PATH/fish-$VERSION.pkg" "$OUTPUT_PATH/fish-$VERSION-signed.pkg" && mv "$OUTPUT_PATH/fish-$VERSION-signed.pkg" "$OUTPUT_PATH/fish-$VERSION.pkg"
|
|
|
|
|
|
|
|
"$SRC_DIR/build_tools/mac_sign_package.sh" "$OUTPUT_PATH/fish-$VERSION.pkg"
|
2013-10-06 08:06:22 +08:00
|
|
|
|
|
|
|
# Make the app
|
2020-02-13 13:00:44 +08:00
|
|
|
{ cd "$PKGDIR/build" && make signed_fish_macapp && zip -r "$OUTPUT_PATH/fish-$VERSION.app.zip" fish.app; }
|
2016-05-26 01:11:02 +08:00
|
|
|
|
2019-11-29 03:37:43 +08:00
|
|
|
rm -r "$PKGDIR"
|