Use absolute path when compiling with new gradle setup

Otherwise all uses of THIRD_PARTY and others will have to canonicalize to strip out "..".

Additionally. this CL sets the working directory for kotlinc to repo
root and adds a few build directories to ignore.

Change-Id: Iadd6c1d306d05a05c148f7cdb6d83cc22e1a858b
diff --git a/.gitignore b/.gitignore
index 13e30c3..510d12c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,10 +18,12 @@
 build/
 buildSrc/out/
 src/*/out
+d8_r8/*/out
 gradle-app.setting
 gradle/*
 gradlew
 gradlew.bat
+d8_r8/gradle*
 local.properties
 r8.ipr
 r8.iws
diff --git a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
index 259f1a0..7c5ceff 100644
--- a/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
+++ b/src/test/java/com/android/tools/r8/KotlinCompilerTool.java
@@ -17,6 +17,7 @@
 import com.android.tools.r8.utils.ArrayUtils;
 import com.android.tools.r8.utils.FileUtils;
 import com.android.tools.r8.utils.structural.Ordered;
+import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
@@ -367,6 +368,7 @@
     }
     cmdline.addAll(additionalArguments);
     ProcessBuilder builder = new ProcessBuilder(cmdline);
+    builder.directory(new File(ToolHelper.getProjectRoot()));
     return ToolHelper.runProcess(builder);
   }
 }
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index 51ed733..592892a 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -97,9 +97,9 @@
   }
 
   public static String getProjectRoot() {
-    String property = System.getProperty("user.dir");
-    if (property.endsWith("d8_r8/test")) {
-      return "../../";
+    String userDirProperty = System.getProperty("user.dir");
+    if (userDirProperty.endsWith("d8_r8/test")) {
+      return Paths.get(userDirProperty).getParent().getParent().toString() + "/";
     }
     return "";
   }
@@ -2273,7 +2273,7 @@
       throws IOException {
     boolean printCwd = builder.directory() != null;
     if (printCwd) {
-      out.println("(cd " + builder.directory().toString() + "; ");
+      out.println("(cd " + builder.directory() + "; ");
     }
     String command = String.join(" ", builder.command());
     out.println(command);