しゃちの備忘録

プログラミングを中心とした技術関連の備忘録です(今のところ)

Macでドット絵エディタAsepriteをビルドする

ほぼ自分用備忘録. Macドット絵エディタAsepriteをビルドします.

Asepriteとは

クロスプラットフォームで動くドット絵エディタです. Steamで購入することもできます(1500円くらい,安い).

ソースコードGithubで公開されており, 個人利用目的またはAsepriteへの貢献目的ならば自前でコンパイルして無料で利用可能なので, 今回はそっちに挑みます.

やること

基本的には作者様のGithubにまとまってます. ここの話を中心に,私の環境でやったこと,詰まったところを補足的に解説していきます.

github.com

xcodeとhomebrewのインストール

xcodeはアップルが提供している統合開発環境, homebrewは様々なパッケージを管理するツールです. 詳細は昔書きました. XcodeとHomebrewについて - しゃちの備忘録

今回はこれらを使い,Asepriteをビルドする環境を整えていきます. やることはコンソールを開いて次を入力するだけ.

$ xcode-select --install
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

また,このあとAsepriteをビルドするために,AppStoreの方からxcodeの完全版をダウンロードしなければいけません(私はxcode-select --installコマンドラインツールしか入れてなかったので上の詰みました,詳細は後述). 4.5GBほどあるので気長に待ちながら,AppStoreからダウンロードしてください.

Xcode - Apple Developer

homebrew上での準備

homebrewを使い,Asepriteをコンパイルするために必要なものを揃えていきます. 使う直前に入れてもいいのですが,記述の関係で,ここにまとめて記述して起きます. gitはバージョン管理システムと呼ばれるものです。これを入れることで特定のバージョンのAseprite などをダウンロードしたりできます(意訳). make, ninjaはAsepriteをビルドするために使います. 上で貼ったリンクではbrew install ninjaについて言及はありませんでしたが, 私の環境ではそれのせいでビルドができなかったので,インストールしてます.(これについても後述)

$ brew install git
$ brew install cmake
$ brew install ninja

skiaのコンパイル

Asepriteでは画像処理用のライブラリとして,skiaというものを使っています. なので,それをpythonを用いてコンパイルしてあげます. ここまでにgitのインストールは終えておいてください.

またここでは$HOME以下にdepsというフォルダを生成し,そこで作業を行います. 全てが終わったらまるっと消してしまっても大丈夫です(多分).

長いので丸ごとコピペしてあげると楽かもしれません.

mkdir $HOME/deps
cd $HOME/deps
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
git clone https://github.com/aseprite/skia.git
export PATH="${PWD}/depot_tools:${PATH}"
cd skia
git checkout aseprite-m55
python bin/sync-and-gyp
ninja -C out/Release dm

Asepriteのダウンロードとビルド

いよいよAseprite本体のビルドを行います. このステップを実行する前に,gitcmakeninjaのインストールは終えておいてください.

今回はDownloadのフォルダで作業が行われます.

まずはダウンロードまで.

cd ~/Downloads
git clone https://github.com/aseprite/aseprite.git
cd aseprite

もし今後ビルドしていく中でusing:\n git submodule update --init --recursive”のエラーを吐いた場合は,フォルダを消して再度すぐ上の3行ものを実行したあと,次の2行を加えた5行を実行してください.(エラー詳細は後述)

git pull
git submodule update --init --recursive

では,Asepriteのビルドに移ります. まるっとピペして大丈夫です. 実行は上と続けて実行してください(cdのパスの関係)

mkdir build
cd build
cmake \
  -DCMAKE_OSX_ARCHITECTURES=x86_64 \
  -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 \
  -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk \
  -DUSE_ALLEG4_BACKEND=OFF \
  -DUSE_SKIA_BACKEND=ON \
  -DSKIA_DIR=$HOME/deps/skia \
  -DWITH_HarfBuzz=OFF \
  -G Ninja \
  ..

長い実行の最後に

-- Generating done
-- Build files have been written to: /Users/teru0rc4/Downloads/aseprite/build

が出てれば大丈夫です.

ここまで来れたら最後に.

ninja aseprite

をして終了です.

ビルドが正しく完了して入れば,Aseprite/build/binというフォルダがこんな感じになってると思われます.

f:id:teru0rc4:20170828035342p:plain

Asepriteを起動する

Aseprite/build/binのなかのasepriteを起動すれば使用できます. ひとまずお疲れ様でした. f:id:teru0rc4:20170828145704p:plain

Asepriteをアプリっぽくする

他のアプリと同じ使用感で使うために一工夫します.

まず適当な場所で,Asepriteというフォルダを作成します.(ここでのフォルダ名はそのままアプリケーション名になってきます) 次に作成したフォルダ内にContentsというフォルダを作成します. そしてその中に先ほど作成したbinフォルダをフォルダこと格納してあげます. 格納し終わったら,binフォルダの名前路MacOSに変更します. ここまででこんな風になっているはずです. f:id:teru0rc4:20170828151131p:plain

最後にAsepriteのリネームを行います. AsepriteAseprite.appに変更してください.

f:id:teru0rc4:20170828151309p:plain

このような警告が出ますが,追加を押します. するとこのようにフォルダが,アプリケーションに変わりました.

f:id:teru0rc4:20170828151627p:plain

あとはアイコンを追加するなり,アプリケーションフォルダに追加するなりしてあげればいいと思います.

私体験したインストール時のエラーとその対策

私が遭遇したエラーとその対策をまとめて起きます. 一応遭遇し,解決した順です.

xcode関係のエラーを吐く

起きた箇所はAsepriteのビルド時,エラー文は以下の通りです.

code-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

こんなエラーを複数吐きます.

これの原因は,xcodeの完全版が入っていないことなので, 上でも触れたようにAppStoreの方からxcodeの完全版をダウンロードしてください.

ちなみに上のエラーメッセージでぐぐると,xcode-select --installをしろと言われますが, 今回のケースではそれでは解決しません.

FATAL_ERRORなんちゃら

起きた箇所はAsepriteのビルド時,エラー文は以下の通りです.

FATAL_ERROR “Your Aseprite repository is incomplete, initialize submodules using:\n  git submodule update --init --recursive”

エラー文で検索してもクリティカルな情報は出てきませんでしたが,ざっくりいうとこれが言っている内容は,手持ちのファイルに欠損があるぞ的な内容です.

作者のインストール手順を見ると回答が書いてありました. これをすると正しく取得できました.

cd ~/Downloads
git clone https://github.com/aseprite/aseprite.git
cd aseprite
git pull
git submodule update --init --recursive

CMake was unable to find的なエラー

起きた箇所はAsepriteのビルド時,エラー文は以下の通りです.

CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

ninjaが入ってないよ,というエラーです.

$ brew install ninja

してから実行すれば解決するはずです.

おわりに

インストールまでにこけまくったので,その備忘録です. 大変でしたが,いろいろ勉強にもなりましたし,何よりビルドできてよかったです.

また,Aseprite作者様にも,この場を借りて感謝を申し上げます. ドット絵とAseprite,楽しみます.