Update android-sdk dependency management. Add Emulator
This commit is contained in:
@@ -154,6 +154,10 @@ object TaskUtils {
|
|||||||
fun useAndroidJar(task: Task) {
|
fun useAndroidJar(task: Task) {
|
||||||
task.useAndroidConfiguration(systemPropertyName = "android.jar", configName = "androidJar")
|
task.useAndroidConfiguration(systemPropertyName = "android.jar", configName = "androidJar")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun useAndroidEmulator(task: Task) {
|
||||||
|
task.useAndroidConfiguration(systemPropertyName = "android.sdk", configName = "androidEmulator")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Task.useAndroidConfiguration(systemPropertyName: String, configName: String) {
|
private fun Task.useAndroidConfiguration(systemPropertyName: String, configName: String) {
|
||||||
|
|||||||
+47
-21
@@ -13,14 +13,24 @@ repositories {
|
|||||||
artifact()
|
artifact()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ivy {
|
||||||
|
url = URI("https://dl.google.com/android/repository/sys-img/android")
|
||||||
|
patternLayout {
|
||||||
|
artifact("[artifact]-[revision](_[classifier]).[ext]")
|
||||||
|
}
|
||||||
|
metadataSources {
|
||||||
|
artifact()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val androidSdk by configurations.creating
|
val androidSdk by configurations.creating
|
||||||
val androidJar by configurations.creating
|
val androidJar by configurations.creating
|
||||||
val androidPlatform by configurations.creating
|
val androidPlatform by configurations.creating
|
||||||
val buildTools by configurations.creating
|
val buildTools by configurations.creating
|
||||||
|
val androidEmulator by configurations.creating
|
||||||
|
|
||||||
val libsDestDir = File(buildDir, "libs")
|
val libsDestDir = File(buildDir, "androidSdk/platforms/android-26")
|
||||||
val sdkDestDir = File(buildDir, "androidSdk")
|
val sdkDestDir = File(buildDir, "androidSdk")
|
||||||
|
|
||||||
val toolsOs = when {
|
val toolsOs = when {
|
||||||
@@ -33,13 +43,34 @@ val toolsOs = when {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val toolsOsDarwin = when {
|
||||||
|
OperatingSystem.current().isWindows -> "windows"
|
||||||
|
OperatingSystem.current().isMacOsX -> "darwin"
|
||||||
|
OperatingSystem.current().isLinux -> "linux"
|
||||||
|
else -> {
|
||||||
|
logger.error("Unknown operating system for android tools: ${OperatingSystem.current().name}")
|
||||||
|
""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val preparePlatform by task<DefaultTask> {
|
||||||
|
doLast {}
|
||||||
|
}
|
||||||
|
|
||||||
val prepareSdk by task<DefaultTask> {
|
val prepareSdk by task<DefaultTask> {
|
||||||
doLast {}
|
doLast {}
|
||||||
|
dependsOn(preparePlatform)
|
||||||
|
}
|
||||||
|
|
||||||
|
val prepareEmulator by task<DefaultTask> {
|
||||||
|
doLast {}
|
||||||
|
dependsOn(prepareSdk)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun unzipSdkTask(
|
fun unzipSdkTask(
|
||||||
sdkName: String, sdkVer: String, destinationSubdir: String, coordinatesSuffix: String,
|
sdkName: String, sdkVer: String, destinationSubdir: String, coordinatesSuffix: String,
|
||||||
additionalConfig: Configuration? = null, dirLevelsToSkipOnUnzip: Int = 0, ext: String = "zip",
|
additionalConfig: Configuration? = null, dirLevelsToSkipOnUnzip: Int = 0, ext: String = "zip",
|
||||||
|
prepareTask: TaskProvider<DefaultTask> = prepareSdk,
|
||||||
unzipFilter: CopySpec.() -> Unit = {}
|
unzipFilter: CopySpec.() -> Unit = {}
|
||||||
): Task {
|
): Task {
|
||||||
val id = "${sdkName}_$sdkVer"
|
val id = "${sdkName}_$sdkVer"
|
||||||
@@ -72,7 +103,7 @@ fun unzipSdkTask(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
prepareSdk.configure {
|
prepareTask.configure {
|
||||||
dependsOn(unzipTask)
|
dependsOn(unzipTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,35 +114,30 @@ fun unzipSdkTask(
|
|||||||
return unzipTask
|
return unzipTask
|
||||||
}
|
}
|
||||||
|
|
||||||
unzipSdkTask("platform", "26_r02", "platforms/android-26", "", androidPlatform, 1)
|
unzipSdkTask("platform", "26_r02", "platforms/android-26", "", androidPlatform, 1, prepareTask = preparePlatform)
|
||||||
unzipSdkTask("android_m2repository", "r44", "extras/android", "")
|
unzipSdkTask("android_m2repository", "r44", "extras/android", "")
|
||||||
unzipSdkTask("platform-tools", "r25.0.3", "", toolsOs)
|
unzipSdkTask("platform-tools", "r28.0.1", "", toolsOsDarwin)
|
||||||
unzipSdkTask("tools", "r24.3.4", "", toolsOs)
|
unzipSdkTask("sdk-tools-$toolsOsDarwin", "4333796"/*26.1.1*/, "", "")
|
||||||
unzipSdkTask("build-tools", "r23.0.1", "build-tools/23.0.1", toolsOs, buildTools, 1)
|
unzipSdkTask("build-tools", "r23.0.1", "build-tools/23.0.1", toolsOs, buildTools, 1)
|
||||||
unzipSdkTask("build-tools", "r28.0.2", "build-tools/28.0.2", toolsOs, buildTools, 1)
|
unzipSdkTask("build-tools", "r28.0.3", "build-tools/28.0.3", toolsOs, buildTools, 1)
|
||||||
|
unzipSdkTask("emulator-$toolsOsDarwin", "5264690", "", "", prepareTask = prepareEmulator)
|
||||||
|
unzipSdkTask("armeabi-v7a", "19", "system-images/android-19/default","r05", prepareTask = prepareEmulator)
|
||||||
|
if (!kotlinBuildProperties.isTeamcityBuild) {
|
||||||
|
unzipSdkTask("x86", "19", "system-images/android-19/default", "r06", prepareTask = prepareEmulator)
|
||||||
|
}
|
||||||
|
|
||||||
val clean by task<Delete> {
|
val clean by task<Delete> {
|
||||||
delete(buildDir)
|
delete(buildDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
val extractAndroidJar by tasks.registering {
|
|
||||||
dependsOn(androidPlatform)
|
|
||||||
inputs.files(androidPlatform)
|
|
||||||
val targetFile = File(libsDestDir, "android.jar")
|
|
||||||
outputs.files(targetFile)
|
|
||||||
doFirst {
|
|
||||||
project.copy {
|
|
||||||
from(zipTree(androidPlatform.singleFile).matching { include("**/android.jar") }.files.first())
|
|
||||||
into(libsDestDir)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
artifacts.add(androidSdk.name, file("$sdkDestDir")) {
|
artifacts.add(androidSdk.name, file("$sdkDestDir")) {
|
||||||
builtBy(prepareSdk)
|
builtBy(prepareSdk)
|
||||||
}
|
}
|
||||||
|
|
||||||
artifacts.add(androidJar.name, file("$libsDestDir/android.jar")) {
|
artifacts.add(androidJar.name, file("$libsDestDir/android.jar")) {
|
||||||
builtBy(extractAndroidJar)
|
builtBy(preparePlatform)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
artifacts.add(androidEmulator.name, file("$sdkDestDir")) {
|
||||||
|
builtBy(prepareEmulator)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user