Port build to SBT 1.x (#23850)

* Port build to SBT 1.x

* Fix multinode tests, always enable genjavadoc bootstrap
This commit is contained in:
Martynas Mickevičius 2017-10-30 03:13:14 +02:00 committed by Konrad `ktoso` Malawski
parent 38622246d9
commit 82ca8a2cc7
44 changed files with 443 additions and 495 deletions

View file

@ -4,8 +4,10 @@
package akka
import sbt._
import sbtunidoc.Plugin.UnidocKeys._
import sbtunidoc.Plugin.{ ScalaUnidoc, JavaUnidoc, Genjavadoc, scalaJavaUnidocSettings, genjavadocExtraSettings, scalaUnidocSettings }
import sbtunidoc.BaseUnidocPlugin.autoImport.{ unidoc, unidocProjectFilter }
import sbtunidoc.JavaUnidocPlugin.autoImport.JavaUnidoc
import sbtunidoc.ScalaUnidocPlugin.autoImport.ScalaUnidoc
import sbtunidoc.GenJavadocPlugin.autoImport.Genjavadoc
import sbt.Keys._
import sbt.File
import scala.annotation.tailrec
@ -100,15 +102,14 @@ object UnidocRoot extends AutoPlugin {
import autoImport._
override def trigger = noTrigger
override def requires =
UnidocRoot.CliOptions.genjavadocEnabled.ifTrue(sbtunidoc.ScalaUnidocPlugin && sbtunidoc.JavaUnidocPlugin && sbtunidoc.GenJavadocPlugin)
.getOrElse(sbtunidoc.ScalaUnidocPlugin)
val akkaSettings = UnidocRoot.CliOptions.genjavadocEnabled.ifTrue(Seq(
javacOptions in (JavaUnidoc, unidoc) ++= Seq("-Xdoclint:none"),
// genjavadoc needs to generate synthetic methods since the java code uses them
scalacOptions += "-P:genjavadoc:suppressSynthetic=false",
// FIXME: see #18056
sources in (JavaUnidoc, unidoc) ~= (_.filterNot(_.getPath.contains("Access$minusControl$minusAllow$minusOrigin"))))).getOrElse(Nil)
val akkaSettings = UnidocRoot.CliOptions.genjavadocEnabled.ifTrue(
Seq(javacOptions in (JavaUnidoc, unidoc) := Seq("-Xdoclint:none"))).getOrElse(Nil)
val settings = {
override lazy val projectSettings = {
def unidocRootProjectFilter(ignoreProjects: Seq[Project]) =
ignoreProjects.foldLeft(inAnyProject) { _ -- inProjects(_) }
@ -117,23 +118,20 @@ object UnidocRoot extends AutoPlugin {
unidocProjectFilter in JavaUnidoc := unidocRootProjectFilter(unidocRootIgnoreProjects.value),
apiMappings in ScalaUnidoc := (apiMappings in (Compile, doc)).value))
}
override lazy val projectSettings =
CliOptions.genjavadocEnabled.ifTrue(scalaJavaUnidocSettings).getOrElse(scalaUnidocSettings) ++ settings
}
/**
* Unidoc settings for every multi-project. Adds genjavadoc specific settings.
*/
object Unidoc extends AutoPlugin {
object BootstrapGenjavadoc extends AutoPlugin {
override def trigger = allRequirements
override def requires = plugins.JvmPlugin
override def requires = UnidocRoot.CliOptions.genjavadocEnabled.ifTrue(sbtunidoc.GenJavadocPlugin)
.getOrElse(plugins.JvmPlugin)
override lazy val projectSettings = UnidocRoot.CliOptions.genjavadocEnabled.ifTrue(
genjavadocExtraSettings ++ Seq(
scalacOptions in Compile += "-P:genjavadoc:fabricateParams=true",
unidocGenjavadocVersion in Global := "0.10",
// FIXME: see #18056
sources in (Genjavadoc, doc) ~= (_.filterNot(_.getPath.contains("Access$minusControl$minusAllow$minusOrigin"))))).getOrElse(Seq.empty)
Seq(
scalacOptions in Compile ++= Seq("-P:genjavadoc:fabricateParams=true", "-P:genjavadoc:suppressSynthetic=false")
)
).getOrElse(Nil)
}