Go用のGoogle製のGUIツールキットgxuiのインストール


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へのインストール

あとで試す。