aboutsummaryrefslogtreecommitdiff
path: root/compiler/test/dotc/build.scala
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/test/dotc/build.scala')
-rw-r--r--compiler/test/dotc/build.scala40
1 files changed, 40 insertions, 0 deletions
diff --git a/compiler/test/dotc/build.scala b/compiler/test/dotc/build.scala
new file mode 100644
index 000000000..b1c8db7c7
--- /dev/null
+++ b/compiler/test/dotc/build.scala
@@ -0,0 +1,40 @@
+package dotc
+
+import java.io.File
+
+object build extends tests {
+
+ private def deleteFilesInFolder(folder: File, deleteFolder: Boolean = false): Unit = {
+ val files = folder.listFiles()
+ if(files != null) { //some JVMs return null for empty dirs
+ for(f <- files) {
+ if(f.isDirectory) {
+ deleteFilesInFolder(f, deleteFolder = true)
+ } else {
+ f.delete()
+ }
+ }
+ }
+ if(deleteFolder) folder.delete()
+ }
+
+ def clearOutput() = {
+ deleteFilesInFolder(new File(defaultOutputDir)) // clear previous output
+ val keepFile = new File(defaultOutputDir + ".keep")
+ keepFile.createNewFile()
+ }
+
+ def main(args: Array[String]): Unit = {
+ println("---------- Building bootstrapped dotty-lib ----------------------------------------------")
+ clearOutput()
+ dottyBootedLib
+ val p1 = Runtime.getRuntime.exec(Array("jar", "cf", "dotty-lib.jar", "-C", "out", "."))
+ p1.waitFor()
+
+ println("---------- Building bootstrapped dotty depending on dotty-lib compiled by dotty ----------")
+ clearOutput()
+ dottyDependsOnBootedLib
+ val p2 = Runtime.getRuntime.exec(Array("jar", "cf", "dotty.jar", "-C", "out", "."))
+ p2.waitFor()
+ }
+}