summaryrefslogtreecommitdiff
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
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
-rw-r--r--scalalib/src/mill/scalalib/ScalaModule.scala31
-rw-r--r--scalalib/src/mill/scalalib/ZincWorkerApi.scala2
-rw-r--r--scalalib/test/src/mill/scalalib/HelloWorldTests.scala2
-rw-r--r--scalalib/worker/src/mill/scalalib/worker/ZincWorkerImpl.scala4
4 files changed, 22 insertions, 17 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
}
diff --git a/scalalib/test/src/mill/scalalib/HelloWorldTests.scala b/scalalib/test/src/mill/scalalib/HelloWorldTests.scala
index ed77216d..1839e275 100644
--- a/scalalib/test/src/mill/scalalib/HelloWorldTests.scala
+++ b/scalalib/test/src/mill/scalalib/HelloWorldTests.scala
@@ -384,7 +384,7 @@ object HelloWorldTests extends TestSuite {
resourcePath = pwd / 'scalalib / 'test / 'resources / "hello-world"
){ eval =>
// scaladoc generation fails because of "-Xfatal-warnings" flag
- val Left(Result.Exception(InteractiveShelloutException(), outerStack)) = eval.apply(HelloWorldWithDocVersion.core.docJar)
+ val Left(Result.Failure("docJar generation failed", None)) = eval.apply(HelloWorldWithDocVersion.core.docJar)
}
'docJarOnlyVersion - workspaceTest(
HelloWorldOnlyDocVersion,
diff --git a/scalalib/worker/src/mill/scalalib/worker/ZincWorkerImpl.scala b/scalalib/worker/src/mill/scalalib/worker/ZincWorkerImpl.scala
index d2be35e9..8a3a3b02 100644
--- a/scalalib/worker/src/mill/scalalib/worker/ZincWorkerImpl.scala
+++ b/scalalib/worker/src/mill/scalalib/worker/ZincWorkerImpl.scala
@@ -49,7 +49,9 @@ class ZincWorkerImpl(ctx0: mill.util.Ctx,
@volatile var mixedCompilersCache = Option.empty[(Long, Compilers)]
-
+ def docJar(args: Seq[String]): Boolean = {
+ new scala.tools.nsc.ScalaDoc().process(args.toArray)
+ }
/** Compile the bridge if it doesn't exist yet and return the output directory.
* TODO: Proper invalidation, see #389
*/