普通文本  |  130行  |  3.07 KB

repositories {
	mavenCentral()
	maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

android {
	buildToolsVersion "20.0.0"
	compileSdkVersion 20
	sourceSets {
		main {
			manifest.srcFile 'AndroidManifest.xml'
			java.srcDirs = ['src']
			aidl.srcDirs = ['src']
			renderscript.srcDirs = ['src']
			res.srcDirs = ['res']
			assets.srcDirs = ['assets']
			jniLibs.srcDirs = ['libs']
		}		
	}
}

// sets up the Android Eclipse project, using the old Ant based build.
eclipse {
	// need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin
	// ignores any nodes added in classpath.file.withXml
	sourceSets {
		main {
			java.srcDirs "src", 'gen'
		}
	}

	jdt {
		sourceCompatibility = 1.6
		targetCompatibility = 1.6
	}

	classpath {
		plusConfigurations += [ project.configurations.compile ]
		containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES'
	}

	project {		
		natures 'com.android.ide.eclipse.adt.AndroidNature'
		buildCommands.clear();
		buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder"
		buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder"
		buildCommand "org.eclipse.jdt.core.javabuilder"
		buildCommand "com.android.ide.eclipse.adt.ApkBuilder"
	}
}

// sets up the Android Idea project, using the old Ant based build.
idea {
	module {
		sourceDirs += file("src");
		scopes = [ COMPILE: [plus:[project.configurations.compile]]]

		iml {
			withXml {
				def node = it.asNode()
				def builder = NodeBuilder.newInstance();
				builder.current = node;
				builder.component(name: "FacetManager") {
					facet(type: "android", name: "Android") {
						configuration {
							option(name: "UPDATE_PROPERTY_FILES", value:"true")
						}
					}
				}
			}
		}
	}
}

// used to create obb file
task copyAssets << {
	def assets = fileTree('assets')
	copy {
		from assets
		into "build/obbassets"
		rename { fileName ->
			fileName = "obbasset-" + fileName
		}
	}
}

task zipAssets(type: Zip) {
	destinationDir = file("build/obb")
	entryCompression = ZipEntryCompression.STORED
	from "build/obbassets"
	baseName = "main.1.com.badlogic.gdx.tests.android"
	extension = "obb"
}

def getADBPath() {
	def path
	def localProperties = new File("local.properties")
	if (localProperties.exists()) {
		Properties properties = new Properties()
		localProperties.withInputStream { instr ->
			properties.load(instr)
	}
	def sdkDir = properties.getProperty('sdk.dir')
	if (sdkDir) {
	    path = sdkDir
	} else {
	    path = "$System.env.ANDROID_HOME"
	}
	} else {
		path = "$System.env.ANDROID_HOME"
	}

	def adb = path + "/platform-tools/adb"
	adb
}

task createOBBDir(type: Exec) {
	def adb = getADBPath();
	commandLine "$adb", 'shell', 'mkdir', '-p', '/mnt/sdcard/Android/obb/com.badlogic.gdx.tests.android'
}
task uploadOBB(type: Exec) {
	def adb = getADBPath();
	commandLine "$adb", 'push', 'build/obb/main.1.com.badlogic.gdx.tests.android.obb', '/mnt/sdcard/Android/obb/com.badlogic.gdx.tests.android'
}

copyAssets.dependsOn clean
zipAssets.dependsOn copyAssets
createOBBDir.dependsOn zipAssets
uploadOBB.dependsOn createOBBDir