search
LoginSignup
252

More than 5 years have passed since last update.

posted at

updated at

Organization

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

スクリーンショット 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へのインストール

あとで試す。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
252