@@ -1158,8 +1158,10 @@ object Build {
11581158 lazy val `scala3-bench-bootstrapped` = project.in(file(" bench" )).asDottyBench(Bootstrapped )
11591159 lazy val `scala3-bench-run` = project.in(file(" bench-run" )).asDottyBench(Bootstrapped )
11601160
1161+ val testcasesOutputDir = taskKey[String ](" Root directory where tests classses are generated" )
1162+ val testcasesSourceRoot = taskKey[String ](" Root directory where tests sources are generated" )
11611163 lazy val `scala3doc` = project.in(file(" scala3doc" )).asScala3doc
1162- lazy val `scala3doc-test ` = project.in(file(" scala3doc-test " )).asScala3docTest
1164+ lazy val `scala3doc-testcases ` = project.in(file(" scala3doc-testcases " )).asScala3docTestcases
11631165
11641166 // sbt plugin to use Dotty in your own build, see
11651167 // https://github.com/lampepfl/scala3-example-project for usage.
@@ -1448,60 +1450,34 @@ object Build {
14481450 settings(commonBenchmarkSettings).
14491451 enablePlugins(JmhPlugin )
14501452
1451- def commonScala3docSettings = Seq (
1452- resolvers += Resolver .jcenterRepo,
1453- resolvers += Resolver .bintrayRepo(" kotlin" , " kotlin-dev" ),
1454- resolvers += Resolver .bintrayRepo(" virtuslab" , " dokka" ),
1455- )
1456-
14571453 def asScala3doc : Project =
14581454 project.settings(commonBootstrappedSettings).
1459- settings(commonScala3docSettings).
14601455 dependsOn(`scala3-compiler-bootstrapped`).
14611456 dependsOn(`scala3-tasty-inspector`).
1462- settings(artifactsForScala3Documentation := Seq (
1463- // All projects below will be used to generated documentation for Scala 3
1464- classDirectory.in(`scala3-interfaces`).in(Compile ).value,
1465- classDirectory.in(`tasty-core`).in(Compile ).value,
1466- classDirectory.in(`scala3-library`).in(Compile ).value,
1467- // TODO this one fails to load using TASTY
1468- // classDirectory.in(`stdlib-bootstrapped`).in(Compile).value,
1469- ))
1470-
1471- def asScala3docTest : Project =
1472- project.settings(commonBootstrappedSettings0).
1473- settings(commonScala3docSettings).
1474- dependsOn(`scala3doc`).
14751457 settings(
1476- Compile / doc/ target := baseDirectory.value / " ../out/doc" / name.value,
1477- doc/ scalaInstance := {
1478- val externalNonBootstrappedDeps = externalDependencyClasspath.in(`scala3doc`, Compile ).value
1479- val scalaLibrary = findArtifact(externalNonBootstrappedDeps, " scala-library" )
1480-
1481- // IMPORTANT: We need to use actual jars to form the ScalaInstance and not
1482- // just directories containing classfiles because sbt maintains a cache of
1483- // compiler instances. This cache is invalidated based on timestamps
1484- // however this is only implemented on jars, directories are never
1485- // invalidated.
1486- val tastyCore = packageBin.in(`tasty-core`, Compile ).value
1487- val dottyLibrary = packageBin.in(`scala3-library-bootstrapped`, Compile ).value
1488- val dottyInterfaces = packageBin.in(`scala3-interfaces`, Compile ).value
1489- val dottyCompiler = packageBin.in(`scala3-compiler-bootstrapped`, Compile ).value
1490- val doctool = packageBin.in(`scala3doc`, Compile ).value
1491-
1492- val allJars = Seq (tastyCore, dottyLibrary, dottyInterfaces, dottyCompiler, doctool) ++ externalNonBootstrappedDeps.map(_.data)
1493-
1494- makeScalaInstance(
1495- state.value,
1496- scalaVersion.value,
1497- scalaLibrary,
1498- dottyLibrary,
1499- dottyCompiler,
1500- allJars
1501- )
1458+ resolvers += Resolver .jcenterRepo,
1459+ resolvers += Resolver .bintrayRepo(" kotlin" , " kotlin-dev" ),
1460+ resolvers += Resolver .bintrayRepo(" virtuslab" , " dokka" ),
1461+ artifactsForScala3Documentation := Seq (
1462+ // All projects below will be used to generated documentation for Scala 3
1463+ classDirectory.in(`scala3-interfaces`).in(Compile ).value,
1464+ classDirectory.in(`tasty-core`).in(Compile ).value,
1465+ classDirectory.in(`scala3-library`).in(Compile ).value,
1466+ // TODO this one fails to load using TASTY
1467+ // classDirectory.in(`stdlib-bootstrapped`).in(Compile).value,
1468+ ),
1469+ test.in(Test ) := {
1470+ // Test
1471+ compile.in(Compile ).in(`scala3doc-testcases`).value
1472+ test.in(Test ).value
15021473 },
1474+ testcasesOutputDir.in(Test ) := classDirectory.in(Compile ).in(`scala3doc-testcases`).value.getAbsolutePath.toString,
1475+ testcasesSourceRoot.in(Test ) := (baseDirectory.in(`scala3doc-testcases`).value / " src" ).getAbsolutePath.toString
15031476 )
15041477
1478+ def asScala3docTestcases : Project =
1479+ project.dependsOn(`scala3-compiler-bootstrapped`).settings(commonBootstrappedSettings)
1480+
15051481 def asDist (implicit mode : Mode ): Project = project.
15061482 enablePlugins(PackPlugin ).
15071483 withCommonSettings.
0 commit comments