summaryrefslogtreecommitdiff
path: root/project/build/Scaladoc.scala
blob: eae006c45f951717addf15364e7b3ac9876e106a (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
41
42
43
44
45
46
47
48
import sbt._
import xsbt.AnalyzingCompiler

trait Scaladoc {
  self: BasicLayer with Packer =>

  lazy val documentationDestination = outputRootPath / "scaladoc"
  lazy val libraryDocumentationDestination = documentationDestination / "library"
  lazy val compilerDocumentationDestination = documentationDestination / "compiler"
  lazy val libraryDoc = {
    val reflect = librarySrcDir / "scala" / "reflect"
    val runtime = librarySrcDir / "scala" / "runtime"

    ((librarySrcDir +++ actorsSrcDir +++ swingSrcDir)**("*.scala")---
            reflect / "Code.scala"  ---
            reflect / "Manifest.scala" ---
            reflect / "Print.scala" ---
            reflect / "Symbol.scala" ---
            reflect / "Tree.scala" ---
            reflect / "Type.scala" ---
            reflect / "TypedCode.scala" ---
            runtime /"ScalaRunTime.scala" ---
            runtime / "StreamCons.scala" ---
            runtime / "StringAdd.scala" ---
            runtime * ("*$.scala") ---
            runtime *("*Array.scala")
            )

  }
  lazy val compilerDoc = {
          compilerSrcDir **("*.scala")
  }
  lazy val classpath ={
    (antJar +++ jlineJar +++ msilJar +++ fjbgJar +++ forkJoinJar +++ outputLibraryJar +++ outputCompilerJar  +++ outputPartestJar +++ outputScalapJar ).get

  }
  lazy val scaladoc = task(maybeFork(generateScaladoc, "Error generating scaladoc")) dependsOn pack

  lazy val generateScaladoc = task {
    instanceScope[Option[String]]{ scala =>
      lazy val compiler = new AnalyzingCompiler(scala, componentManager, xsbt.ClasspathOptions.manual, log)
      val docGenerator = new sbt.Scaladoc(50, compiler)
      docGenerator("Scala "+ versionNumber+" API", libraryDoc.get, classpath, libraryDocumentationDestination, Seq(), log) orElse
      docGenerator("Scala Compiler"+ versionNumber+" API", compilerDoc.get, classpath, compilerDocumentationDestination, Seq(), log)
    }
  }

}