LoginSignup
12
12

More than 5 years have passed since last update.

goandroidをDockerでビルド

Posted at

goandroidの説明とGoAndroidでʕ ◔ϖ◔ʔGo~を参考にさせていただき、goandroidの環境をDockerで作ってみました。

Repository

Docker HubでAutomated Buildしてあります。
ksoichiro/goandroid Repository

goandroidビルド時の注意点

躓いたポイントについて、
上記イメージを使う場合は関係ありませんが、
Docker以外でビルドする場合に参考になるかもしれないのでメモしておきます。

普通に手順通りに進めると、patch適用後にgolangをソースコードからビルドする際、以下のようにreleaseのタグを選ぶようになっています。

$ hg clone -u release https://code.google.com/p/go

しかし、2014/6/24現在ではこれではうまくいきませんでした。
patchの適用に失敗します。

patching file src/pkg/runtime/proc.c
Hunk #1 succeeded at 75 with fuzz 2 (offset 7 lines).
Hunk #2 succeeded at 196 with fuzz 2 (offset 24 lines).

releaseタグは最新版につけられているようで、変動していくと思われます。

そこで、patchに含まれるチェンジセットの値を参考に過去のコミットを選択してみましたが、今度はbuild.cで除外ファイルのチェックに引っ掛かり、失敗しました。

go tool dist: /usr/local/src/go/src/cmd/prof should not exist in release build

最終的に、タグgo1.2を選ぶことでこれを回避し、ビルド成功しました。

使い方

goandroidに付属のサンプルhello-gl2をビルドする例です。

$ cd goandroid/hello-gl2
$ docker run -t -i -v `pwd`:/workspace ksoichiro/goandroid ./build.sh
runtime/cgo
hellogl2

上記ではコンテナの/workspaceというパスをローカルのカレントディレクトリに割り当てています。

サンプルではこの配下のandroidディレクトリにbuild.xmlが含まれていますので、これをAntでビルドできれば成功です。

$ cd android
$ ant debug
12
12
0

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
  3. You can use dark theme
What you can do with signing up
12
12