Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vigorouscoding/b8b3b9231bbbaf8f64cefc5a341c86cd to your computer and use it in GitHub Desktop.
Save vigorouscoding/b8b3b9231bbbaf8f64cefc5a341c86cd to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -e
target_osx=$(sw_vers -productVersion)
project_dir=/Users/rkmax/development/aseprite
skia_dir=/Users/rkmax/development/skia
arch="$(uname -m)"
bundle_trial_url=https://www.aseprite.org/downloads/trial/Aseprite-v1.2.40-trial-macOS.dmg
install_update_deps() {
macos_deps
dep_skia
dep_aseprite
}
macos_deps() {
brew update
brew install cmake ninja
}
dep_skia() {
rm -rf $skia_dir
mkdir -p $skia_dir
cd $skia_dir
latest_url=$(curl -s https://api.github.com/repos/aseprite/skia/releases/latest | grep "browser_download_url.*-macOS.*${arch}.zip" | cut -d : -f 2,3 | tr -d \")
name=$(basename "${latest_url}")
if [ ! -f "${name}" ]; then
echo "Downloading ${name}"
# the value already include '"'
# shellcheck disable=SC1073
wget ${latest_url}
fi
unzip "${name}"
}
dep_aseprite() {
if [ ! -d $project_dir ]; then
git clone --recursive https://github.com/aseprite/aseprite.git $project_dir
fi
cd $project_dir
git pull
}
build_bin() {
cd $project_dir
mkdir -p build
cd build
cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_OSX_ARCHITECTURES="${arch}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${target_osx}" \
-DCMAKE_MACOSX_RPATH=ON \
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk \
-DLAF_BACKEND=skia \
-DSKIA_DIR="${skia_dir}" \
-DSKIA_LIBRARY_DIR="${skia_dir}/out/Release-${arch}" \
-DSKIA_LIBRARY="${skia_dir}/out/Release-${arch}/libskia.a" \
-DPNG_ARM_NEON:STRING=on \
-G Ninja ..
ninja aseprite
}
package_app() {
mkdir -p "${project_dir}/bundle"
cd "${project_dir}/bundle"
name=$(basename "${bundle_trial_url}")
if [ ! -f "${name}" ]; then
echo "Downloading bundle assets"
wget "${bundle_trial_url}"
fi
mkdir -p mount
yes qy | hdiutil attach -quiet -nobrowse -noverify -noautoopen -mountpoint mount "${name}"
cp -r mount/Aseprite.app .
hdiutil detach -quiet mount
rm -rf Aseprite.app/Contents/MacOS/aseprite
rm -rf Aseprite.app/Contents/Resources/data
cp -r "${project_dir}/build/bin/aseprite" Aseprite.app/Contents/MacOS/aseprite
cp -r "${project_dir}/build/bin/data" Aseprite.app/Contents/Resources/data
}
install_app() {
sudo cp -r "${project_dir}/bundle/Aseprite.app" /Applications/
}
install_update_deps
build_bin
package_app
install_app
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment