diff --git a/com.ibm.wala.dalvik.test/build.gradle b/com.ibm.wala.dalvik.test/build.gradle index 74c067766..d5c226028 100644 --- a/com.ibm.wala.dalvik.test/build.gradle +++ b/com.ibm.wala.dalvik.test/build.gradle @@ -6,6 +6,9 @@ sourceSets.test { ] } +def osName = System.getProperty('os.name') +def isWindows = osName.startsWith('Windows ') + task downloadDroidBench(type: VerifiedDownload) { src 'https://codeload.github.com/secure-software-engineering/DroidBench/zip/DroidBench_2.0' dest "$temporaryDir/DroidBench_2.0.zip" @@ -25,7 +28,7 @@ task unpackDroidBench(type: Sync, dependsOn: downloadDroidBench) { task downloadAndroidSdk(type: VerifiedDownload) { def sdkOs - switch (System.getProperty('os.name')) { + switch (osName) { case ~/Linux/: sdkOs = 'linux' checksum '444e22ce8ca0f67353bda4b85175ed3731cae3ffa695ca18119cbacef1c1bea0' @@ -53,9 +56,12 @@ task unpackAndroidSdk(type: Sync, dependsOn: downloadAndroidSdk) { // TODO: factor out common code in installAndroidBuildTools and installAndroidPlatforms task installAndroidBuildTools(type: Exec, dependsOn: unpackAndroidSdk) { def androidSdk = files(unpackAndroidSdk).singleFile - def manager = "$androidSdk/tools/bin/sdkmanager" + def manager = new File(androidSdk, 'tools/bin/sdkmanager') ext.version = '26.0.2' - commandLine 'sh', '-ceu', "yes 2>/dev/null | $manager build-tools\\;$version >/dev/null" + if (isWindows) + commandLine 'PowerShell', '-Command', "echo y | $manager build-tools`;$version >\$null" + else + commandLine 'sh', '-ceu', "yes 2>/dev/null | $manager build-tools\\;$version >/dev/null" inputs.dir "$androidSdk/tools" outputs.dir "$androidSdk/build-tools" } @@ -67,10 +73,13 @@ task copyDxJar(type: Sync, dependsOn: installAndroidBuildTools) { // TODO: factor out common code in installAndroidBuildTools and installAndroidPlatforms task installAndroidPlatforms(type: Exec, dependsOn: unpackAndroidSdk) { - def manager = "${files(unpackAndroidSdk).singleFile}/tools/bin/sdkmanager" - ext.version = "android-${installAndroidBuildTools.version.tokenize('.')[0]}" - commandLine 'sh', '-ceu', "yes 2>/dev/null | $manager platforms\\;$version >/dev/null" def androidSdk = files(unpackAndroidSdk).singleFile + def manager = new File(androidSdk, 'tools/bin/sdkmanager') + ext.version = "android-${installAndroidBuildTools.version.tokenize('.')[0]}" + if (isWindows) + commandLine 'PowerShell', '-Command', "echo y | $manager platforms`;$version >\$null" + else + commandLine 'sh', '-ceu', "yes 2>/dev/null | $manager platforms\\;$version >/dev/null" inputs.dir "$androidSdk/tools" outputs.dir "$androidSdk/platforms" }