GoogleがGo用の新しいGUIライブラリのgxuiをリリースしました。
ソースコードを見て分かる特徴
- ボタン、テキスト入力、ツリーコンポーネントとかがありそう
- ツリーアダプタ的なクラスがある。直接ツリーコンポーネントに要素を追加するんじゃなくて、MVC的な作り?
- テーマが切り替えられる。darkというのが最初から組み込まれている。色を変えるぐらいならすぐできそう。ちなみに、テーマといいつつ画像データはなくてフルソースコード。
- ベースはOpenGL。
- C拡張を使っているのでクロスコンパイルは簡単ではなさそう。
Macへのインストール
MacOSX 10.9+Golang 1.4.2(公式バイナリ)で試しています。
glewというライブラリが必要そうなので、Sourceforgeからtarballをダウンロードしてきてインストールします。
$ tar xvzf glew-20150124.tgz
$ cd glew-1.11.0
$ make
$ sudo make install
なんか警告一杯でいるけどインストールできました。
$ go get github.com/google/gxui
$ go get code.google.com/p/freetype-go/freetype/truetype
$ go get github.com/go-gl-legacy/gl
$ go get github.com/go-gl/glfw/v3.1/glfw
ここまでやったら、リポジトリのsamplesフォルダのプログラムがビルドできるようになります。
$ cd gxui/samples/polygon
$ go build
$ ls -l
-rwxr-xr-x 1 shibukawa.yoshiki 5923528 Mar 17 18:35 polygon
-rw-r--r-- 1 shibukawa.yoshiki 2612 Mar 17 18:19 main.go
6MBぐらいですね。小さい!ちなみにそのまま実行するとエラーになります。SourceCodePro-Regular.ttf
というファイルを拾ってきて(ココからとか)、data/SourceCodePro-Regular.ttf
と言う感じにおいてから実行します。
※ data フォルダを -data=/path/to/data
という風に指定する事も出来ます。
なんか出ました。依存関係が少ないのが自慢のgolang。今回のプログラムはどうでしょうか?(compatibility versionの項目は長いので消してます)
$ otool -L ./polygon
./polygon:
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
/usr/lib/libGLEW.1.11.0.dylib
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
/usr/lib/libSystem.B.dylib
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
/usr/lib/libobjc.A.dylib
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
OS標準のライブラリ以外は、さきほど入れたlibGLEWだけですね。libGLEW自体は600KBほどの小さいライブラリです。配布する時は一緒に配りたいですね。以下のように参照先を変更すれば、実行ファイルと同じフォルダにおいておくことができます。
$ cp /usr/lib/libGLEW.1.11.0.dylib .
$ install_name_tool -change /usr/lib/libGLEW.1.11.0.dylib @executable_path/libGLEW.1.11.0.dylib ./polygon
.appのバンドルの作り方はまた後日。
Windowsへのインストール
あとで試す。