Aseprite 컴파일 하는 방법

Aseprite는 픽셀 아트에 사용되는 프로그램입니다. 주로 게임에 들어갈 도트 찍는데 사용합니다. Aseprite는 독특한 배포 전략을 취하고 있습니다. 유료 판매도 하고 있지만, 무료로 사용할 수 도 있습니다. 소스코드를 받아서 컴파일 할 수 있다면 말이죠. (소스코드는 공개돼있지만, 소스코드를 재배포할 수 없는 등의 제약이 있으므로, 오픈소스 소프트웨어는 아닙니다.)

Aseprite를 컴파일하는 방법은 다음 주소에 들어가면 나오기는 합니다.
https://github.com/aseprite/aseprite/blob/master/INSTALL.md (이하 "공식설치문서"라고 하겠습니다.)
하지만 설명이 매우 불친절하므로 어떻게 해야하는지 몰라서 헤메기 딱 좋습니다.

본 글에서는 Aseprite를 윈도우 10에서 컴파일하는 방법에 대해서 설명합니다. 컴파일하기 위해 필요한 것들을 단계별로 진행해봅시다.
- 운영체제 : 윈도우 10
- 컴파일러 : Visual Studio Community 2019
- 빌드 도구 : CMake, Ninja
- 기본 라이브러리 : Windows 10 SDK
- 그래픽 라이브러리 : Skia
- 소스코드 : Aseprite

1. 운영체제

홈페이지에서는 운영체제는 윈도우 10이면 된다고 나와있으나, 윈도우 10 32비트 버전에 대해서는 테스트해보지 않았지만, 컴파일이 안될 수도 있을 것 같습니다. 본 글에서는 윈도우 10 64비트 버전이 설치돼있다고 가정하고 설명하겠습니다. 윈도우 10 64비트 버전인지는, "내 PC"를 우클릭하고 "속성"을 클릭하면 "Windows 버전"과 "시스템 종류"를 확인할 수 있습니다.

2. 백신

네이버 백신에서는 아무 문제가 발생하지 않았지만, Avast 같은 경우 컴파일 중에 액세스 오류가 발생해서 컴파일이 멈춰버릴 수 있다고 합니다. 이런 경우라면 컴파일 중에는 백신의 실시간 감시를 중지시켜놔야 합니다.

3. 컴파일러, 빌드 도구, 기본 라이브러리

https://visualstudio.microsoft.com/ko/ 에서 Visual Studio Community 2019 를 받아서 설치합니다. 다음과 같이 "C++를 사용한 데스크톱 개발"을 체크하고, 설치 세부 정보에서 다음을 추가적으로 선택합니다.
- Windows 10 SDK (10.0.18362.0)
- Windows용 C++ Cmake 도구
- Windows용 C++ Clang 도구

(20년 9월 현재는 Windows 10 SDK 버전은 10.0.18362.0로 하면 되지만, 공식설치문서에서 어떤 버전을 사용하면 되는지 확인할 필요가 있습니다.)


설치가 완료되면 Developer Command Prompt for VS 2019 를 실행합니다. 윈도우 버튼을 클릭하고 "Developer Command Prompt for VS 2019"를 입력하여 실행할 수 있습니다.
터미널이 뜨면 다음 명령어를 실행해서 CMake과 Ninja가 설치됐는지 확인합니다.
(주의사항 : 명령어 앞에 ">"는 입력하지 않습니다.)

> cmake --version
> ninja --version


 위와 유사하게 나온다면 제대로 설치가 된 것입니다.

4. Skia

Aseprite에서는 그래픽 라이브러리로 Skia를 사용하고 있습니다. Skia는 구글에서 만든 오픈소스 2D 그래픽 라이브러리입니다. Aseprite를 컴파일 하기 전에 Skia를 컴파일할 필요가 있지만, 미리 컴파일해놓은 파일을 제공하고 있으므로 우리가 다시 컴파일할 필요는 없습니다.
https://github.com/aseprite/skia/releases 에서 Skia-m81 중에서 다음 2개의 파일을 받습니다. (20년 9월 현재는 Skia-m81 버전을 사용하면 되지만, 공식설치문서에서 어떤 버전을 사용해야하는지 확인할 필요가 있습니다.)
- Skia-Windows-Release-x64.zip
- Skia-Windows-Release-x86.zip

C드라이브 밑에 build_asesprite 폴더를 생성하고, Skia-Windows-Release-x86.zip 의 압축을 C:\build_asesprite 에 풀어놓고 폴더의 이름을 Skia로 바꿔놓습니다. 그 결과로 다음의 경로에 skia.lib 파일이 있다면 제대로 된 것입니다.
C:\build_asesprite\Skia\out\Release-x86\

Skia-Windows-Release-x64.zip 도 C:\build_asesprite 에 압축을 풀어놓고 out\Release-x64 폴더를 C:\build_asesprite\Skia\out\ 에 옮겨놓습니다. 그 결과로 다음의 경로에 skia.lib 파일이 있다면 제대로 된 것입니다.
C:\build_asesprite\Skia\out\Release-x64\

5. Aseprite 소스코드

https://github.com/aseprite/aseprite/releases 에서 Asesprte-버전-Source.zip 파일을 받습니다. (참고로, 20년 9월 현재 기준 최신 버전은 1.2.25이며, Aseprite-v1.2.25-Source.zip 를 받으면 됩니다.)

받았으면 C:\build_asesprite\에 압축을 풀어놓고 폴더의 이름을 Aseprite로 바꿔놓습니다. 그 결과로 다음의 경로에 CMakeLists.txt 파일이 있다면 제대로 된 것입니다.
C:\build_asesprite\Aseprite\

5. Aseprite 컴파일

Developer Command Prompt for VS 2019를 실행하고 다음 명령어를 입력합니다.

> cd C:\build_asesprite\Aseprite
> mkdir build
> cd build
> cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=C:\build_asesprite\Skia -DSKIA_LIBRARY_DIR=C:\build_asesprite\Skia\out\Release-x86 -DSKIA_LIBRARY=C:\build_asesprite\Skia\out\Release-x86\skia.lib -G Ninja ..

실행결과 마지막에 다음과 같이 출력되면 빌드 설정이 완료된 것입니다.

-- Configuring done
-- Generating done
-- Build files have been written to: C:/deps/aseprite/build

그러면 이제 Aseprite 컴파일을 할 준비가 끝났습니다. 다음 명령어를 실행해서 컴파일 합니다.

> ninja aseprite

컴파일이 성공적으로 끝나면 C:\build_asesprite\Aseprite\build\bin\ 에 aseprite.exe 파일이 있을 것이고, 이를 실행하면 됩니다.

==========================================================
20년 9월 현재 기준으로 컴파일하는 방법은 이걸로 끝이지만, 여담으로 Aseprite를 컴파일하기가 왜 힘든지, 어떻게 대처하면 되는지에 대해서 조금 설명하겠습니다.

A. 홈페이지의 불친절한 설명으로 인한 삽질

Visual Studio Community 2019 를 설치하는 과정에서 CMake와 Ninja를 쉽게 설치할 수 있음에도, 이러한 사실을 모른다면 https://cmake.org/ 에서 CMake를 받아서 설치하고 https://ninja-build.org/ 에서 Ninja를 받아서 설치하는 삽질을 하게 됩니다.
그리고 왜인지는 모르겠지만 Skia가 32비트와 64비트 둘 다 필요하며, 이에 대한 설명이 없으므로 또 삽질을 하게 됩니다.

B. 인터넷에 있는 방법들은 Outdated

홈페이지의 설명을 따르는 것을 포기하고 인터넷에 있는 방법들을 따라해볼 수 있습니다. 예전에 써진 글의 경우 Windows 10 SDK 나 Skia 를 예전 버전 기준으로 설명돼있다면 당연히 그대로 따라하면 안됩니다.
게다가 Skia는 컴파일 안해도 되는데, Skia를 컴파일해야하는 것처럼 설명돼있다면 그대로 따라하면 더욱 삽질을 하게 됩니다.

C. 그래서 결론은?

공식설치문서을 기반으로 하되, 다음을 주의합니다.
(1) CMake와 Ninja는 별도로 설치할 필요 없고 Visual Studio Community 2019 설치시 본 글에서 설명한 것처럼 구성요소를 잘 선택해서 설치합니다.
(2) Skia는 컴파일하지 말고 https://github.com/aseprite/skia/releases 에서 받습니다.
(3) Aseprite의 소스코드는 https://github.com/aseprite/aseprite/releases 에서 받습니다. (git 명령어로 받아서 삽질하지 맙시다.)
(4) cmake 명령어는 공식설치문서 중 "Windows details"에 있는 부분을 따라합니다.
다만, 옵션에서 폴더나 파일의 경로를 지정하는 부분은 적절히 수정합니다. 예를 들어, 명령어가 다음과 같다면,

> cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -DSKIA_DIR=C:\deps\skia -DSKIA_LIBRARY_DIR=C:\deps\skia\out\Release-x64 -DSKIA_LIBRARY=C:\deps\skia\out\Release-x64\skia.lib -G Ninja ..

예를 들어, C:\deps\skia, C:\deps\skia\out\Release-x64, C:\deps\skia\out\Release-x64\skia.lib 를 각각 C:\build_asesprite\Skia, C:\build_asesprite\Skia\out\Release-x86, C:\build_asesprite\Skia\out\Release-x86\skia.lib 와 같이 바꿉니다.

댓글

이 블로그의 인기 게시물

프로그래밍 언어 탐방 - Nim