summaryrefslogtreecommitdiff
path: root/scalalib/src
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-10-18 07:32:29 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-10-18 09:14:27 +0800
commitc1b8b3de8fe123317a07e0a4454606767876cb41 (patch)
tree04f8db077b2288cf0918c47e63009453980c0f7d /scalalib/src
parentd551ee9d751201491a1d64e4da76ab03e3815df6 (diff)
downloadmill-c1b8b3de8fe123317a07e0a4454606767876cb41.tar.gz
mill-c1b8b3de8fe123317a07e0a4454606767876cb41.tar.bz2
mill-c1b8b3de8fe123317a07e0a4454606767876cb41.zip
.
fix docjar tests now it no longer fails with an exception docJar works again, now mill clean __.docJar && mill __.docJar goes from 413s to 47s on the mill repo
Diffstat (limited to 'scalalib/src')
-rw-r--r--scalalib/src/mill/scalalib/ScalaModule.scala31
-rw-r--r--scalalib/src/mill/scalalib/ZincWorkerApi.scala2
2 files changed, 18 insertions, 15 deletions
diff --git a/scalalib/src/mill/scalalib/ScalaModule.scala b/scalalib/src/mill/scalalib/ScalaModule.scala
index 74656818..35dc67d7 100644
--- a/scalalib/src/mill/scalalib/ScalaModule.scala
+++ b/scalalib/src/mill/scalalib/ScalaModule.scala
@@ -173,23 +173,24 @@ trait ScalaModule extends JavaModule { outer =>
val javadocDir = outDir / 'javadoc
mkdir(javadocDir)
- val files = for{
- ref <- allSources()
- if exists(ref.path)
- p <- (if (ref.path.isDir) ls.rec(ref.path) else Seq(ref.path))
- if (p.isFile && ((p.ext == "scala") || (p.ext == "java")))
- } yield p.toNIO.toString
+ val files = allSourceFiles().map(_.path.toString)
val pluginOptions = scalaDocPluginClasspath().map(pluginPathRef => s"-Xplugin:${pluginPathRef.path}")
- val options = Seq("-d", javadocDir.toNIO.toString, "-usejavacp") ++ pluginOptions ++ scalaDocOptions()
-
- if (files.nonEmpty) subprocess(
- "scala.tools.nsc.ScalaDoc",
- scalaCompilerClasspath().map(_.path) ++ compileClasspath().filter(_.path.ext != "pom").map(_.path),
- mainArgs = (files ++ options).toSeq
- )
-
- createJar(Agg(javadocDir))(outDir)
+ val compileCp = compileClasspath().filter(_.path.ext != "pom").map(_.path)
+ val options = Seq(
+ "-d", javadocDir.toNIO.toString, "-usejavacp",
+ "-classpath", compileCp.mkString(":")
+ ) ++
+ pluginOptions ++
+ scalaDocOptions()
+
+ if (files.isEmpty) Result.Success(createJar(Agg(javadocDir))(outDir))
+ else {
+ zincWorker.worker().docJar(files ++ options) match{
+ case true => Result.Success(createJar(Agg(javadocDir))(outDir))
+ case false => Result.Failure("docJar generation failed")
+ }
+ }
}
/**
diff --git a/scalalib/src/mill/scalalib/ZincWorkerApi.scala b/scalalib/src/mill/scalalib/ZincWorkerApi.scala
index ebe2f071..c05ac62f 100644
--- a/scalalib/src/mill/scalalib/ZincWorkerApi.scala
+++ b/scalalib/src/mill/scalalib/ZincWorkerApi.scala
@@ -79,4 +79,6 @@ trait ZincWorkerApi {
def discoverMainClasses(compilationResult: CompilationResult)
(implicit ctx: mill.util.Ctx): Seq[String]
+
+ def docJar(args: Seq[String]): Boolean
}