From ffbae33074263a59444b161254d2cf3b27646807 Mon Sep 17 00:00:00 2001 From: "Achim D. Brucker" Date: Wed, 31 Oct 2018 06:54:47 +0000 Subject: [PATCH] Moved Android SDK download into main crosslanguage project. --- .../build.gradle | 72 +----------------- .../build.gradle | 74 +++++++++++++++++++ 2 files changed, 76 insertions(+), 70 deletions(-) diff --git a/com.logicalhacking.dasca.crosslanguage.test/build.gradle b/com.logicalhacking.dasca.crosslanguage.test/build.gradle index fdc5be7..05e4010 100644 --- a/com.logicalhacking.dasca.crosslanguage.test/build.gradle +++ b/com.logicalhacking.dasca.crosslanguage.test/build.gradle @@ -2,77 +2,9 @@ apply plugin: 'scala' description = 'com.logicalhacking.dasca.crosslanguage.test' -def osName = System.getProperty('os.name') -ext.isWindows = osName.startsWith('Windows ') - -task downloadAndroidSdk(type: VerifiedDownload) { - def sdkOs - switch (osName) { - case ~/Linux/: - sdkOs = 'linux' - checksum '444e22ce8ca0f67353bda4b85175ed3731cae3ffa695ca18119cbacef1c1bea0' - break - case ~/Mac OS X/: - sdkOs = 'darwin' - checksum '4a81754a760fce88cba74d69c364b05b31c53d57b26f9f82355c61d5fe4b9df9' - break - case ~/Windows.*/: - sdkOs = 'windows' - checksum '7f6037d3a7d6789b4fdc06ee7af041e071e9860c51f66f7a4eb5913df9871fd2' - break - } - def archive = "sdk-tools-$sdkOs-3859397.zip" - src "https://dl.google.com/android/repository/$archive" - dest "$temporaryDir/$archive" - algorithm 'SHA-256' -} - -task installAndroidSdk(type: Sync, dependsOn: downloadAndroidSdk) { - from zipTree(downloadAndroidSdk.dest) - into temporaryDir - - def buildToolsVersion = '26.0.2' - ext { - components = [ - 'build-tools': buildToolsVersion, - 'platforms': "android-${buildToolsVersion.tokenize('.')[0]}" - ] - } - - doLast { - exec { - def shell, shellFlags, yes, semicolon, discard - if (project.isWindows) { - shell = 'PowerShell' - shellFlags = '-Command' - yes = 'echo y' - semicolon = '`;' - discard = '$null' - } else { - shell = 'sh' - shellFlags = '-ceu' - yes = 'yes 2>/dev/null' - semicolon = /\;/ - discard = '/dev/null' - } - - def componentArgs = components.collect { "$it.key$semicolon$it.value" }.join ' ' - commandLine shell, shellFlags, "$yes | $temporaryDir/tools/bin/sdkmanager $componentArgs >$discard" - } - } - outputs.cacheIf { true } -} - -task copyAndroidJar(type: Sync, dependsOn: installAndroidSdk) { - from "${installAndroidSdk.destinationDir}/platforms/${installAndroidSdk.components['platforms']}/android.jar" - into temporaryDir -} - processResources { - with copySpec { - from copyAndroidJar - rename { "android-dasca.jar" } - } + from '../com.logicalhacking.dasca.crosslanguage/build/resources/main' + into 'build/resources/main' } dependencies { diff --git a/com.logicalhacking.dasca.crosslanguage/build.gradle b/com.logicalhacking.dasca.crosslanguage/build.gradle index fc837bf..8b593e0 100644 --- a/com.logicalhacking.dasca.crosslanguage/build.gradle +++ b/com.logicalhacking.dasca.crosslanguage/build.gradle @@ -1,6 +1,80 @@ apply plugin: 'scala' description = 'com.logicalhacking.dasca.crosslanguage' + +def osName = System.getProperty('os.name') +ext.isWindows = osName.startsWith('Windows ') + +task downloadAndroidSdk(type: VerifiedDownload) { + def sdkOs + switch (osName) { + case ~/Linux/: + sdkOs = 'linux' + checksum '444e22ce8ca0f67353bda4b85175ed3731cae3ffa695ca18119cbacef1c1bea0' + break + case ~/Mac OS X/: + sdkOs = 'darwin' + checksum '4a81754a760fce88cba74d69c364b05b31c53d57b26f9f82355c61d5fe4b9df9' + break + case ~/Windows.*/: + sdkOs = 'windows' + checksum '7f6037d3a7d6789b4fdc06ee7af041e071e9860c51f66f7a4eb5913df9871fd2' + break + } + def archive = "sdk-tools-$sdkOs-3859397.zip" + src "https://dl.google.com/android/repository/$archive" + dest "$temporaryDir/$archive" + algorithm 'SHA-256' +} + +task installAndroidSdk(type: Sync, dependsOn: downloadAndroidSdk) { + from zipTree(downloadAndroidSdk.dest) + into temporaryDir + + def buildToolsVersion = '26.0.2' + ext { + components = [ + 'build-tools': buildToolsVersion, + 'platforms': "android-${buildToolsVersion.tokenize('.')[0]}" + ] + } + + doLast { + exec { + def shell, shellFlags, yes, semicolon, discard + if (project.isWindows) { + shell = 'PowerShell' + shellFlags = '-Command' + yes = 'echo y' + semicolon = '`;' + discard = '$null' + } else { + shell = 'sh' + shellFlags = '-ceu' + yes = 'yes 2>/dev/null' + semicolon = /\;/ + discard = '/dev/null' + } + + def componentArgs = components.collect { "$it.key$semicolon$it.value" }.join ' ' + commandLine shell, shellFlags, "$yes | $temporaryDir/tools/bin/sdkmanager $componentArgs >$discard" + } + } + outputs.cacheIf { true } +} + +task copyAndroidJar(type: Sync, dependsOn: installAndroidSdk) { + from "${installAndroidSdk.destinationDir}/platforms/${installAndroidSdk.components['platforms']}/android.jar" + into temporaryDir +} + +processResources { + with copySpec { + from copyAndroidJar + rename { "android-dasca.jar" } + } +} + dependencies { implementation group: 'org.scala-lang', name: 'scala-library', version:'2.12.3' implementation group: 'org.scala-lang.modules', name: 'scala-xml_2.12', version: '1.1.1'