OpenSiv3D 0.6.3をArch Linuxでビルドする
以前のブログで、OpenSiv3D をビルドするという旨の記事を書いていました。ただ、その記事はかなり情報が古くなっています。まず記事を書いてしばらく経った頃に v0.4.3 がリリースされ、このバージョンで AngelScript の別途インストールが不要になりました。これについては記事内でも補足しています。また、v0.6.0 のリリースに伴って、ビルド方法がかなり変更されたらしいです(詳細はよくわかってないですが)。
ということで、最近インストールしたばかりの Arch Linux に OpenSiv3D 0.6.3 開発環境を作ってみたので、やり方をざっくりまとめます。
環境
- Arch Linux + i3wm
- Ryzen 5 2600
- GTX 1060 6GB
依存パッケージのインストール
とりあえずこれからです。以下のコマンドで必要なパッケージのほとんどをインストールできます。
パッケージが足りなかったり余分だったりしたら教えてください。
sudo pacman -S git cmake ninja alsa-lib ffmpeg4.4 gtk3 libcgif glu harfbuzz mpg123 opencv opus opusfile soundtouch libtiff libjpeg-turbo libvorbis libwebp libxft
さて、OpenSiv3D は boost に依存しており、バージョンもはっきり指定されています。執筆時点での Arch リポジトリにある boost のバージョンは 1.78.0 ですが、0.6.3 時点の要求バージョン(README に書いてある)は**「Boost 1.71.0 - 1.73.0」**です。ということで、1.74.0を入れます。何を言っているのかわからないと思いますが、アーカイブに 1.73.0 は無く、1.72.0 ではビルドできません。だから、1.74.0 を入れる必要があったんですね。多分ちゃんとビルドできるので安心してください。
古いバージョンのパッケージは、Arch Linux Archiveに置いてあります。boost は以下のページにあります。
[OGP image not found]Index of /packages/b/boost/https://archive.archlinux.org/packages/b/boost/
この中から 1.74.0 を探して、最後の拡張子が sig でないものをダウンロードします。今回ダウンロードしたファイル名は「boost-1.74.0-2-x86_64.pkg.tar.zst」です。
また、バージョンを合わせて boost-libs もダウンロードします。以下から探してください。今回は「boost-libs-1.74.0-2-x86_64.pkg.tar.zst」でした。
ダウンロードしたら、それら 2 つを同じディレクトリに配置し、そのディレクトリで以下のコマンドを実行してインストールします。
$ sudo pacman -U <name>
sudo pacman -U boost-libs-1.74.0-2-x86_64.pkg.tar.zst boost-1.74.0-2-x86_64.pkg.tar.zst になると思います。
ソースコードのダウンロードと編集
とりあえず、GitHub からソースコードをダウンロードします。
$ git clone https://github.com/Siv3D/opensiv3d
そうしたら、以下の編集を行ってください。
src/Siv3D-Platform/Linux/Siv3D/AudioCodec/CAudioCodec.cppの 17 行あたり、extern "C"の内部に# include <libavcodec/avcodec.h>という文を貼り付けるsrc/ThirdParty/cpptoml/cpptoml.hの序盤あたりに、#include <limits>という文を貼り付ける
以上で編集は終わりです。
ビルドとサンプルプログラムの実行
まず Linux 用ライブラリのビルドディレクトリを作成し、cmake でビルドします。以下のコマンド群を一行ずつ実行してください。
$ cd opensiv3d/Linux
$ mkdir build && cd build
$ PKG_CONFIG_PATH=/usr/lib/ffmpeg4.4/pkgconfig cmake -GNinja ..
$ ninja
なかなか時間がかかりますが、完了すると libSiv3D.a が生成されます。されてなかったら何か間違ってる可能性があります。
そのままサンプルプログラムを実行しましょう。Linux 版のサンプルプログラムは、CI の都合上起動しても何もせず終了してしまうらしいので、Windows のサンプルプログラムを持ってきてビルドしてみます。
$ cd ../App
$ cp ../../WindowsDesktop/Main.cpp .
$ mkdir build && cd build
$ cmake -GNinja ..
$ ninja
そうすると、ひとつ上のフォルダ(Linux/App/)に、Siv3DTest が生成されます。実行してみて、ちゃんと動くかどうか確かめてみてください。
Arch LinuxでOpenSiv3D 0.6.3
なかなか大変だった ブログにまとめます
ということで、ここからは Main.cpp を編集したりして開発を進めていけば OK です。
余談
↑ のツイートをした直後に色々修正されたり、最新のソースではもとから修正されてたりしてたらしいです。OpenSiv3D 0.6.4 が公開されたらソースコードの編集や ffmpeg のバージョンを変える必要はないとのことです。
ツイートを読み込み中...
Comments
Powered by Giscus