Make running test possible with CMD.exe Needed to use a .bat file to avoid an issue where built-in modules shadowed the R8-defined modules with same names. Bug: Change-Id: Ia18c011bf1968ece440251d17074d2a76b499264
diff --git a/build.gradle b/build.gradle index f11c7ae..6feb7a8 100644 --- a/build.gradle +++ b/build.gradle
@@ -137,8 +137,14 @@ def sha1File = "${gzFile}.sha1" inputs.file sha1File outputs.file gzFile - executable "bash" - args "-c", "download_from_google_storage -n -b r8-deps -u -s ${sha1File}" + List<String> dlFromStorageArgs = ["-n", "-b", "r8-deps", "-u", "-s", "${sha1File}"] + if (OperatingSystem.current().isWindows()) { + executable "download_from_google_storage.bat" + args dlFromStorageArgs + } else { + executable "bash" + args "-c", "download_from_google_storage " + String.join(" ", dlFromStorageArgs) + } } } } @@ -427,7 +433,12 @@ task buildExampleJars { dependsOn downloadProguard def examplesDir = file("src/test/examples") - def proguardScript = "third_party/proguard/proguard5.2.1/bin/proguard.sh" + def proguardScript + if (OperatingSystem.current().isWindows()) { + proguardScript = "third_party/proguard/proguard5.2.1/bin/proguard.bat" + } else { + proguardScript = "third_party/proguard/proguard5.2.1/bin/proguard.sh" + } task "compile_examples"(type: JavaCompile) { source = fileTree(dir: examplesDir, include: '**/*.java') destinationDir = file("build/test/examples/classes") @@ -459,11 +470,17 @@ // Enable these to get stdout and stderr redirected to files... // standardOutput = new FileOutputStream('proguard.stdout') // errorOutput = new FileOutputStream('proguard.stderr') - executable "bash" - args "-c", "${proguardScript} '-verbose -dontwarn java.** -injars ${jarPath}" + + def proguardArguments = "-verbose -dontwarn java.** -injars ${jarPath}" + " -outjars ${proguardJarPath}" + " -include ${proguardConfigPath}" + - " -printmapping ${proguardMapPath}'" + " -printmapping ${proguardMapPath}" + if (OperatingSystem.current().isWindows()) { + executable "${proguardScript}" + args "${proguardArguments}" + } else { + executable "bash" + args "-c", "${proguardScript} '${proguardArguments}'" + } outputs.file proguardJarPath } } else {
diff --git a/tools/gradle.py b/tools/gradle.py index 1945557..64e6d51 100755 --- a/tools/gradle.py +++ b/tools/gradle.py
@@ -14,7 +14,10 @@ GRADLE_DIR = os.path.join(utils.REPO_ROOT, 'third_party', 'gradle') GRADLE_SHA1 = os.path.join(GRADLE_DIR, 'gradle.tar.gz.sha1') -GRADLE = os.path.join(GRADLE_DIR, 'gradle', 'bin', 'gradle') +if os.name == 'nt': + GRADLE = os.path.join(GRADLE_DIR, 'gradle', 'bin', 'gradle.bat') +else: + GRADLE = os.path.join(GRADLE_DIR, 'gradle', 'bin', 'gradle') def PrintCmd(s): if type(s) is list:
diff --git a/tools/test.bat b/tools/test.bat new file mode 100644 index 0000000..a343096 --- /dev/null +++ b/tools/test.bat
@@ -0,0 +1,9 @@ +@echo off +:: Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file +:: for details. All rights reserved. Use of this source code is governed by a +:: BSD-style license that can be found in the LICENSE file. +setlocal + +PATH=%~dp0;%PATH% + +python "%~dp0\test.py" %* \ No newline at end of file