aboutsummaryrefslogtreecommitdiff
path: root/test/dotc/build.scala
blob: b1c8db7c7a0f8e75dc89447337b021d1717eefc8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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()
  }
}