diff --git a/dist/bin/scaladoc b/dist/bin/scaladoc index e92e21d6e49a..f09bf27812c0 100755 --- a/dist/bin/scaladoc +++ b/dist/bin/scaladoc @@ -127,6 +127,7 @@ eval "\"$JAVACMD\"" \ ${JAVA_OPTS:-$default_java_opts} \ "${java_args[@]}" \ "${jvm_cp_args-}" \ + -Dscala.usejavacp=true \ "dotty.tools.scaladoc.Main" \ "${scala_args[@]}" \ "${residual_args[@]}" \ diff --git a/project/Build.scala b/project/Build.scala index 68df8ea326ad..52ff8f8979e5 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -1243,7 +1243,7 @@ object Build { libraryDependencies += ("org.scala-js" %%% "scalajs-dom" % "1.1.0").cross(CrossVersion.for3Use2_13) ) - def generateDocumentation(targets: Seq[String], name: String, outDir: String, ref: String, params: Seq[String] = Nil) = + def generateDocumentation(targets: Seq[String], name: String, outDir: String, ref: String, params: Seq[String] = Nil, usingScript: Boolean = true) = Def.taskDyn { val distLocation = (dist / pack).value val projectVersion = version.value @@ -1267,7 +1267,20 @@ object Build { s"-source-links:github://lampepfl/dotty/$referenceVersion", ) ++ scalacOptionsDocSettings ++ revision ++ params ++ targets import _root_.scala.sys.process._ - Def.task((s"$distLocation/bin/scaladoc" +: cmd).!) + if (usingScript) + Def.task((s"$distLocation/bin/scaladoc" +: cmd).!) + else { + val escapedCmd = cmd.map(arg => if(arg.contains(" ")) s""""$arg"""" else arg) + Def.task { + try { + (Compile / run).toTask(escapedCmd.mkString(" ", " ", "")).value + 0 + } catch { + case _ : Throwable => 1 + } + } + } + } val SourceLinksIntegrationTest = config("sourceLinksIntegrationTest") extend Test @@ -1314,8 +1327,7 @@ object Build { generateSelfDocumentation := Def.taskDyn { generateDocumentation( (Compile / classDirectory).value.getAbsolutePath :: Nil, - "scaladoc", "scaladoc/output/self", VersionUtil.gitHash, - Seq("-usejavacp") + "scaladoc", "scaladoc/output/self", VersionUtil.gitHash ) }.value, generateScalaDocumentation := Def.inputTaskDyn { @@ -1356,7 +1368,7 @@ object Build { s"-source-links:docs=github://lampepfl/dotty/master#docs", "-doc-root-content", docRootFile.toString, "-Ydocument-synthetic-types" - ) + ), usingScript = false )) }.evaluated, @@ -1365,8 +1377,7 @@ object Build { (Test / Build.testcasesOutputDir).value, "scaladoc testcases", "scaladoc/output/testcases", - "master", - Seq("-usejavacp") + "master" ) }.value,