-
-
Save allangarcia/938b052a7d55d1652052e4259364260b to your computer and use it in GitHub Desktop.
#!/bin/bash | |
# README: A more updated version is on the comments by (ashmna)[https://gist.github.com/ashmna] | |
# See at: https://gist.github.com/allangarcia/938b052a7d55d1652052e4259364260b?permalink_comment_id=4265898#gistcomment-4265898 | |
# this is for tools required | |
brew update | |
brew install ninja | |
brew install cmake | |
# crete the default root directory | |
cd $HOME/Developer | |
mkdir Aseprite | |
cd Aseprite | |
# download skia m81 | |
curl -O -L "https://github.com/aseprite/skia/releases/download/m81-b607b32047/Skia-macOS-Release-x64.zip" | |
unzip Skia-macOS-Release-x64.zip -d skia-m81 | |
# this is the project itselft | |
git clone --recursive https://github.com/aseprite/aseprite.git | |
# compiling aseprite | |
cd aseprite | |
mkdir build | |
cd build | |
cmake \ | |
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |
-DCMAKE_OSX_ARCHITECTURES=x86_64 \ | |
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \ | |
-DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk \ | |
-DLAF_BACKEND=skia \ | |
-DSKIA_DIR=../../skia-m81 \ | |
-DSKIA_LIBRARY_DIR=../../skia-m81/out/Release-x64 \ | |
-G Ninja \ | |
.. | |
ninja aseprite | |
cd ../.. | |
# bundle app from trial | |
mkdir bundle | |
cd bundle | |
curl -O -J "https://www.aseprite.org/downloads/trial/Aseprite-v1.2.27-trial-macOS.dmg" | |
mkdir mount | |
yes qy | hdiutil attach -quiet -nobrowse -noverify -noautoopen -mountpoint mount Aseprite-v1.2.27-trial-macOS.dmg | |
cp -rf mount/Aseprite.app . | |
hdiutil detach mount | |
rm -rf Aseprite.app/Contents/MacOS/aseprite | |
cp -rf ../aseprite/build/bin/aseprite Aseprite.app/Contents/MacOS/aseprite | |
rm -rf Aseprite.app/Contents/Resources/data | |
cp -rf ../aseprite/build/bin/data Aseprite.app/Contents/Resources/data | |
cd .. | |
# Install on /Applications | |
sudo cp bundle/Aseprite.app /Applications/ |
I believe we can talk with the Aseprite first... to get authorization to do this.
Honestly, I don't know how we can turn this script into a project}). Also, I believe that guys from Aseprite will not like that idea.
My idea is to make a BashScript asking questions...
- Do you want to make a build for what version?
- Do you want to make a build for what platform?
- Then the script download the things and make a bundle. (Maybe even for Windows)
In this matter:
"I believe that guys from Aseprite will not like that idea."
I think you are absolutely right... so I sent this tweet.
https://twitter.com/AllanGarciaDev/status/1558606855047417856
Maybe you can respond to that and we move towards a CE (Community Edition) curated by maintainers (like you and me), this is not uncommon. If you want the full support from him (forgot his company), you buy the app. If not, you build the CE.
But I'll only do something about it if I have a green light from him, and also will give you also the status of co-founder of this future Community Edition.
Hey, since I'm not a bash script master, I'll say the idea is perfect and I'll do my best, but you'll have to start it.
About the windows os, not sure that bash script will be run on window os.
I was thinking more about a QT Python application, that run the command under the hoods... My twitter was never responded (By Aseprite). Now I'm a little busy trying to get a job, doing interviews and tests. But when I have the time I'll put together a "make your own aseprite bundler" patent pending LOL. Name to be defined. If they complain about it, I mention the twitter and they never say no.
Also, in the meantime, I'll not update my gist. Two reasons... to give your credit to your comment. And because I didn't test agains M1 Macs. Also the time issue.
I just write a version that does work on my mac M1, idk if also works for macos with x86 processor but in theory should work because is arch aware https://gist.github.com/rkmax/ca5892c1d44bf3fdbe081784d67d5d5a
I tried using the updated version on my M1 MacBook. I ran the terminal using Rosetta and ran the script, and it seems to have failed at the very end. The cp commands at the end are failing, throwing a "no such file or directory" error.
Thanks for the bundle steps! First time making a macos bundle. However the curl command in the script didn't work (it created an empty file instead of downoading the dmg), and the cp command at the end didn't have a -R so it didn't work right.
curl https://www.aseprite.org/downloads/trial/Aseprite-v1.3.2-trial-macOS.dmg --output ase.dmg
yes qy | hdiutil attach -quiet -nobrowse -noverify -noautoopen -mountpoint mount ase.dmg
.. (All other commands worked fine until the cp) ..
cp -R Aseprite.app /Applications
I am using a m1 macbook pro as well.
This was also my first time making a macOS bundle, and I tried following both directions above but neither of them worked for me. This is what ended up working for me:
mkdir bundle
cd bundle
curl -O -J https://www.aseprite.org/downloads/trial/Aseprite-v1.3.4-trial-macOS.dmg
mkdir mount
yes qy | hdiutil attach -quiet -nobrowse -noverify -noautoopen -mountpoint mount Aseprite-v1.3.4-trial-macOS.dmg
cp -r mount/Aseprite.app .
rm -rf Aseprite.app/Contents/MacOS/aseprite
cp -R ~/Developer/aseprite/build/bin/aseprite Aseprite.app/Contents/MacOS/
rm -rf Aseprite.app/Contents/Resources/data
cp -R ~/Developer/aseprite/build/bin/data Aseprite.app/Contents/Resources/
sudo cp -R Aseprite.app /Applications/
It's basically the same as the main post, but I changed 1 or 2 things that ended up throwing errors at me. I am using a M2 MacBook Pro (on version 14.0 Sonoma).
for silicon users with new version:
mkdir bundle
cd bundle
curl -O -J "https://www.aseprite.org/downloads/trial/Aseprite-v1.3.4-trial-macOS.dmg"
mkdir mount
yes qy | hdiutil attach -quiet -nobrowse -noverify -noautoopen -mountpoint mount Aseprite-v1.3.4-trial-macOS.dmg
cp -rf mount/Aseprite.app .
hdiutil detach mount
rm -rf Aseprite.app/Contents/MacOS/aseprite
cp -rf ../aseprite/build/bin/aseprite Aseprite.app/Contents/MacOS/aseprite
rm -rf Aseprite.app/Contents/Resources/data
cp -rf ../aseprite/build/bin/data Aseprite.app/Contents/Resources/data
cd ..
for silicon users with new version:
mkdir bundle cd bundle curl -O -J "https://www.aseprite.org/downloads/trial/Aseprite-v1.3.4-trial-macOS.dmg" mkdir mount yes qy | hdiutil attach -quiet -nobrowse -noverify -noautoopen -mountpoint mount Aseprite-v1.3.4-trial-macOS.dmg cp -rf mount/Aseprite.app . hdiutil detach mount rm -rf Aseprite.app/Contents/MacOS/aseprite cp -rf ../aseprite/build/bin/aseprite Aseprite.app/Contents/MacOS/aseprite rm -rf Aseprite.app/Contents/Resources/data cp -rf ../aseprite/build/bin/data Aseprite.app/Contents/Resources/data cd ..
Thank you for the update. I'll incorporate this into a new gist and share here, because we don't know everyone already adopted ARM and don't know if the ARM version will work on Intel's based compiling.
This .sh script has a problem: it doesn't catch errors, such as a 404 error for Aseprite-v1.3.4-trial-macOS.dmg among others. This might not seem like a big issue, but for beginners (like myself), it can be very time-consuming to understand WHY IT'S NOT WORKING!
I couldn't build Aseprite without encountering errors until I divided the code into steps. Working with the code in separated steps is easier than debugging a .sh script.
I discovered some alternative solutions and wrote a simple tutorial for my reference, which might be helpful for others - https://f-cka.notion.site/Build-Run-Aseprite-on-Apple-Silicon-f88527ab38c44bc3997ef1e7e5447851, and I achieved the desired result.
This .sh script has a problem: it doesn't catch errors, such as a 404 error for Aseprite-v1.3.4-trial-macOS.dmg among others. This might not seem like a big issue, but for beginners (like myself), it can be very time-consuming to understand WHY IT'S NOT WORKING!
I couldn't build Aseprite without encountering errors until I divided the code into steps. Working with the code in separated steps is easier than debugging a .sh script.
I discovered some alternative solutions and wrote a simple tutorial for my reference, which might be helpful for others - https://f-cka.notion.site/Build-Run-Aseprite-on-Apple-Silicon-f88527ab38c44bc3997ef1e7e5447851, and I achieved the desired result.
Thanks @furashcka, I think you have a little mistake in your bash script
cp -rf mount/Aseprite.app .
hdiutil detach mount
rm -rf Aseprite.app/Contents/MacOS/aseprite
cp -rf ../aseprite/build/bin/aseprite Aseprite.app/Contents/MacOS/aseprite
rm -rf Aseprite.app/Contents/Resources/data
cp -rf ../aseprite/build/bin/data Aseprite.app/Contents/Resources/data
cd ..
should be
cp -rf mount/Aseprite.app .
hdiutil detach mount
rm -rf Aseprite.app/Contents/MacOS/aseprite
cp -rf ../build/bin/aseprite Aseprite.app/Contents/MacOS/aseprite
rm -rf Aseprite.app/Contents/Resources/data
cp -rf ../build/bin/data Aseprite.app/Contents/Resources/data
cd ..
Thank you so much for all contributions. I’ll be soon updating the script.
Anyone have experience into making this a project to compile into a docker container? I would love this contribution.
I had to run xattr -cr Aseprite.app
at the end otherwise I was getting an error "the application is damaged and should be moved to the trash" https://community.aseprite.org/t/macos-ventura-13-0/16105
What do you thing about making this a real project... now my Mac is arm64, so I have to change a few line also. I saw the diff and is basically the skia version and the Bundle trial version
...
What if we can build at first arm64 and x64, but after maybe a Windows also? Just my first thoughts.