Cocos2d-x And Gradle - 使用Gradle编译Cocos2-dx - 林国锋个人博客
ほとんどこれを日本語にしただけなので、中国語読める人はこっち読んだほうが早い。
前提
Gradle使えるようにする
brew update
brew install gradle
gvm使うのがオシャレらしいけど、カジュアルな感じにbrewを使う。
gradle設定する
cd TestApp
gradle init
すると、必要なファイルが生成される
Cocos2d-xのandroidプラグインをgradleライブラリにする
cocos2d/cocos/2d/platform/android/java/build.gradleを作って、コピペする。
apply plugin: 'android-library' dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 14 buildToolsVersion "19.1.0" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } }
compileSdkVersionとかは自分のアプリに合わせて変える。 buildToolsVersionは、その時の最新バージョン指定したほうが良い。*1
ビルドスクリプトを書く
gradle initで生成されたbuild.gradleに設定を書いていく
project.ext {
androidRoot = 'proj.android'
env = System.getenv()
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.10.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: androidRoot + '/libs', include: '*.jar')
compile fileTree(dir: androidRoot + '/libs/armeabi', include: '*/so')
compile project(':cocos2d:cocos:2d:platform:android:java')
}
task ndkBuild(type: Exec) {
commandLine androidRoot + '/build_native.py'
}
android {
compileSdkVersion 14
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 14
}
sourceSets {
main {
manifest.srcFile androidRoot + '/AndroidManifest.xml'
java.srcDirs = [androidRoot + '/src']
resources.srcDirs = [androidRoot + '/src']
aidl.srcDirs = [androidRoot + '/src']
renderscript.srcDirs = [androidRoot + '/src']
res.srcDirs = [androidRoot + '/res']
assets.srcDirs = [androidRoot + '/assets']
jniLibs.srcDirs = [androidRoot + '/libs']
}
}
}
ビルド設定を書く
gradle initで生成されたsettings.gradleに上で書いた2つの設定を読み込ませる。
include ':cocos2d:cocos:2d:platform:android:java' include ':proj.android' rootProject.name = 'TestApp'
ここまで書いたらgradle ndkBuildと、gradle標準のビルドコマンドが実行できるようになる。
proj.androidの中でgradle initしたほうがオシャレっぽいけど、directoryさかのぼってincludeする方法が分からなかったのでこんな感じになってる。方法がわかったら編集する。
あと、build_native.py使わないでビルドしたいので、別の機会にやる。
参考
- Gradle+AndroidプラグインでNDKプロジェクトをビルドする - やらなイカ?
- 署名の設定とかも書いてある
*1:バージョン指定しないでOKにしたいけど方法が分からない