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);