본문 바로가기
Coding

실리콘 맥에서 Aseprite를 빌드하는 법

by 이담불 2024. 3. 28.

 

다음 쉘 스크립트를 사용하면 쉽게 빌드할 수 있습니다. (환경 M2 맥에어)

 

1. 바탕화면에 aseprite_macos_install.sh 파일 생성 (아래 소스)

2. 사용자 디렉토리 이름 교체 (6~7번 줄 수정)

3. Aseprite 홈페이지에서 트라이얼 버전 확인 후 버전 교체 (10번 줄 수정)

https://www.aseprite.org/trial/

 

Aseprite

Animated sprite editor & pixel art tool

www.aseprite.org

#!/usr/bin/env bash

set -e

target_osx=$(sw_vers -productVersion)
project_dir=/Users/사용자이름/Desktop/Aseprite/aseprite
skia_dir=/Users/사용자이름/Desktop/Aseprite/skia
arch="$(uname -m)"

bundle_trial_url=https://www.aseprite.org/downloads/trial/Aseprite-v1.3.4-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}"

    # Use curl as an alternative to wget
    curl -O -L ${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"
    # Use curl as an alternative to wget
    curl -O -L "${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

 

4. 터미널을 이용하여 해당 파일이 있는 디렉토리 이동하여 sh 명령어 실행

cd Desktop/
sh aseprite_macos_install.sh

 

5. /Desktop/Asepirte/aseprite/bundle/Aseprite.app을 응용 프로그램에 복사넣기