Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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 という風に指定する事も出来ます。

スクリーンショット 2015-03-17 18.47.27.png

なんか出ました。依存関係が少ないのが自慢の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へのインストール

あとで試す。

future
ITを武器とした課題解決型のコンサルティングサービスを提供します
http://future-architect.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away