Reland "Use absolute path when compiling with new gradle setup"
This reverts commit 6ff6074a6f512b5076701baa3772e27671354d57.
Change-Id: Ica3c10593354c25977570b87927264d4acfcaede
diff --git a/.gitignore b/.gitignore
index a010b23..b8c394a 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..642e319 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,9 @@
}
cmdline.addAll(additionalArguments);
ProcessBuilder builder = new ProcessBuilder(cmdline);
+ if (ToolHelper.isNewGradleSetup()) {
+ 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);