common-lisp
RaspberryPi
EQL5

RaspberryPiへのEQL5(Embedded Qt Lisp)導入メモ

はじめに

EQL5(Embedded Qt Lisp)が思った以上に面白かったので、RaspberryPiにも導入してみました。
その手順をまとめておきます。

※ 事前にECLをインストールしておいてください。

ECLは以下の記事を参考にインストールしてください。
* Embeddable Common Lisp導入メモ

Qt導入

以下のコマンドでQt本体と必要な各種開発ツールをインストールします。

sudo apt install qt-sdk
sudo apt install qttools5-dev qttools5-dev-tools

初期状態では、Qt Ver.4.8.7を参照してしまっているので、以下のコマンドで Qt Ver.5.7.1に切り替えます。

export QTCHOOSER_RUNTOOL=qtconfig
export QT_SELECT=5

Screenshot_20180114_144819.png

EQL5導入

EQL5のソースコード一式をダウンロード

git clone https://gitlab.com/eql/EQL5.git

ダウンロードしたEQL5の「src」ディレクトリに移動します。

cd ダウンロードしたディレクトリ/EQL5/src

以下のコマンドを実行します。

ecl -shell make

Makefile作成

qmake eql5.pro

コンパイル

make

インストール

sudo make install

無事インストールが成功していれば、以下のコマンドでバージョンが確認できます。

eql5 -v

この時、以下のようなWARNINGが出てしまいましたが、動作自体は問題なさそうです。
後々調べてみます。

libEGL warning: DRI2: failed to authenticate
** (eql5:1649): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

Screenshot_20180114_145626.png

サンプルプログラム実行

今回は「Sokoban」というサンプルプログラムを実行します。
以下のコマンドでサンプルプログラムのある場所に入ります。
(サンプルプログラムは /EQL5/examples/ ディレクトリ下にあります。)

cd EQL5をダウンロードしたディレクトリ/EQL5/examples/7-Sokoban

以下のコマンドで実行します。

eql5 eql-sokoban.lisp

以下、実行画面です。
※ 以下の画面ではSokoban.lisp以外にもいくつかのサンプルプログラムを同時に実行しています。

Screenshot_20180114_143320.png

空ウィンドウプログラム

空ウィンドウプログラムも一応記載しておきます。

test.lispという名前で以下のプログラムを作成

test.lisp
(in-package :eql-user)

(let ((window (qnew "QWidget"
                    "size" '(320 240)
                    "windowTitle" "Top-level widget")))
  (|show| window))

以下のコマンドで実行

eql5 test.lisp

以下、実行中の様子。

Screenshot_20180114_150847.png

最後に

色々試したところ、EQL5では簡単にGUIアプリケーションが作れたりしてとても面白いです。
一度にたくさんのサンプルアプリを起動してもサクサク動作していたので、性能面でもとても良いと思いました。