ログ日記

作業ログと日記とメモ

Debian 10 buster に swift をインストールして GTKとQt の GUIデモを動かした

https://swift.org/download/#releases
ここからUbuntu18用のファイルを持ってくる。20はglibcのバージョン違いで動かなかったので18で。


How to Install Swift on Debian 10 (Buster) – Step By Step: Linuxs
ここに書いているコマンドをそのまま実行。

apt install libncurses5 clang libcurl4 libpython2.7 libpython2.7-dev

mv swift-5.3.3-RELEASE-ubuntu18.04.tar.gz /opt/
cd /opt
tar xvzf swift-5.3.3-RELEASE-ubuntu18.04.tar.gz
ln -s swift-5.3.3-RELEASE-ubuntu18.04 swift

DLしたswiftのディレクトリを名前を変えて /opt に移動して /opt/swift/usr/bin のPATHを設定する。

swift --version
Swift version 5.3.3 (swift-5.3.3-RELEASE)
Target: x86_64-unknown-linux-gnu


LinuxでもSwiftを使ってGUI開発をしたい!【SwiftGtk】 - Qiita
ここを参考にしようと思ったけど、TomasLinhart/SwiftGtk のバージョンが古いようなので
GitHub - rhx/SwiftGtk: A Swift wrapper around gtk-3.x and gtk-4.x that is largely auto-generated from gobject-introspection
こっちを設定。何やら関連プロジェクトや依存パッケージが多くて複雑っぽい。


Hello Worldのビルドにかなり時間がかかるんだが、こんなもんなんだろうか。
.build/ ディレクトリが 1.4GBある。
.build/x86_64-unknown-linux-gnu/debug/ が984MB。

swift build -c release

でリリースビルドになるようなので、やってみるとこちらもかなり時間がかかる。
.build/x86_64-unknown-linux-gnu/release/ は317MB
.build/x86_64-unknown-linux-gnu/release/HelloGtk は57MBだった。Hello Worldで57MB…。


コンパイルするタイプの言語は -j オプションで分割コンパイルできるということを思い出して、-j 8 でやってみる。結構早くなったけどそれでも遅い。
使わない機能もとりあえず全部まとめてswift用に変換とコンパイルしているような動きだ。
そういえばghcjsでもgoでも同じような感じだった気がする…。とりあえず各種デモプログラムは動くことを確認した。毎回githubからDLするのもどうかと…まあこれは今風か。



GTKじゃなくてQtを試そうと
GitHub - therecipe/swift: Qt binding for Swift | Showcase example for https://github.com/therecipe/qt
こっちも入れてみたけど、イマイチどういう動きになっているのか分からず…。
また今度続きをやろう。


とりあえず何かの言語でGUIという場合はswiftより先にgoをやった方が良いかもわからんね。