Add dexmerger support for Windows

This CL adds a dexmerger.bat script that uses the
already present dx.jar file in order to be able to
build tests that rely on this tool, namely the smali
tests.

Bug:

Change-Id: I4b69f6b60c7fc7e042b82c36657e5fcf22a0239a
diff --git a/build.gradle b/build.gradle
index 0a512f2..967923c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,8 @@
 // Copyright (c) 2016, 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.
-import org.gradle.internal.os.OperatingSystem;
+import org.gradle.internal.os.OperatingSystem
+import utils.Utils;
 
 apply plugin: 'java'
 apply plugin: 'idea'
@@ -984,7 +985,7 @@
     def artTestDir = file("${androidCheckoutDir}/art/test")
     def artRunTestScript = file("${artTestDir}/run-test")
     def dxExecutable = new File("tools/linux/dx/bin/dx");
-    def dexMergerExecutable = new File("tools/linux/dx/bin/dexmerger");
+    def dexMergerExecutable = Utils.dexMergerExecutable()
     def dexToolName = dexTool == DexTool.DX ? "dx" : "jack"
 
     def name = dir.getName();
diff --git a/buildSrc/src/main/java/dx/DexMerger.java b/buildSrc/src/main/java/dx/DexMerger.java
index 39a4bfb..d3d8427 100644
--- a/buildSrc/src/main/java/dx/DexMerger.java
+++ b/buildSrc/src/main/java/dx/DexMerger.java
@@ -53,7 +53,7 @@
       public void execute(ExecSpec execSpec) {
         try {
           if (dexMergerExecutable == null) {
-            dexMergerExecutable = new File("tools/" + Utils.toolsDir() + "/dx/bin/dexmerger");
+            dexMergerExecutable = Utils.dexMergerExecutable();
           }
           execSpec.setExecutable(dexMergerExecutable);
           execSpec.args(destination.getCanonicalPath());
diff --git a/buildSrc/src/main/java/utils/Utils.java b/buildSrc/src/main/java/utils/Utils.java
index 4cbc90c..7158e80 100644
--- a/buildSrc/src/main/java/utils/Utils.java
+++ b/buildSrc/src/main/java/utils/Utils.java
@@ -3,6 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package utils;
 
+import java.io.File;
+
 public class Utils {
   public static String toolsDir() {
     String osName = System.getProperty("os.name");
@@ -14,4 +16,9 @@
       return "linux";
     }
   }
-}
+
+  public static File dexMergerExecutable() {
+    String executableName = Utils.toolsDir().equals("windows") ? "dexmerger.bat" : "dexmerger";
+    return new File("tools/" + Utils.toolsDir() + "/dx/bin/" + executableName);
+  }
+}
\ No newline at end of file
diff --git a/tools/windows/README.dx b/tools/windows/README.dx
index 99db256..348dc4a 100644
--- a/tools/windows/README.dx
+++ b/tools/windows/README.dx
@@ -21,3 +21,5 @@
 ---
 > call java %javaOpts% -Djava.ext.dirs="%frameworkdir%" -jar "%jarpath%" %params%
 
+dexmerger.bat has been copied from dx.bat, and the command line has been updated
+according to the SDK dexmerger bash script to call the right class.
\ No newline at end of file
diff --git a/tools/windows/dx.tar.gz.sha1 b/tools/windows/dx.tar.gz.sha1
index beadad3..0f3e345 100644
--- a/tools/windows/dx.tar.gz.sha1
+++ b/tools/windows/dx.tar.gz.sha1
@@ -1 +1 @@
-1d680c9efc9e17d4fc51e8afd0bbe1b3d8724903
\ No newline at end of file
+9adeae753e17fa0a663e4d458b406a39ded27621
\ No newline at end of file