@@ -926,6 +926,59 @@ object Build {
926
926
javaOptions := (`scala3-compiler-bootstrapped` / javaOptions).value
927
927
)
928
928
929
+ /** Version of stdlib-bootstrapped that compiles both Scala 2 and Scala 3 libraries
930
+ * This is only used as a temporary solution until the docs can be generated using
931
+ * stdlib-bootstrapped and scala3-library-bootstrapped.
932
+ */
933
+ lazy val `stdlib-bootstrapped-legacy` = project.in(file(" stdlib-bootstrapped-legacy" )).
934
+ withCommonSettings(Bootstrapped ).
935
+ dependsOn(dottyCompiler(Bootstrapped ) % " provided; compile->runtime; test->test" ).
936
+ settings(commonBootstrappedSettings).
937
+ settings(stdlibBootstrappedCommonSettings).
938
+ settings(
939
+ scalacOptions -= " -Yscala2-stdlib" ,
940
+ Compile / scalacOptions ++= {
941
+ Seq (
942
+ " -sourcepath" ,
943
+ Seq (
944
+ (Compile / sourceManaged).value / " scala-library-src" ,
945
+ (Compile / sourceManaged).value / " dotty-library-src" ,
946
+ ).mkString(File .pathSeparator),
947
+ )
948
+ },
949
+ (Compile / sourceGenerators) += Def .task {
950
+ val s = streams.value
951
+ val cacheDir = s.cacheDirectory
952
+ val trgDir = (Compile / sourceManaged).value / " dotty-library-src"
953
+
954
+ // NOTE `sourceDirectory` is used for actual copying,
955
+ // but `sources` are used as cache keys
956
+ val dottyLibSourceDirs = (`scala3-library-bootstrapped`/ Compile / unmanagedSourceDirectories).value
957
+ def dottyLibSources = dottyLibSourceDirs.foldLeft(PathFinder .empty) { (pf, dir) =>
958
+ if (! dir.exists) pf else pf +++ (dir ** " *.scala" ) +++ (dir ** " *.java" )
959
+ }
960
+
961
+ val cachedFun = FileFunction .cached(
962
+ cacheDir / s " copyDottyLibrarySrc " ,
963
+ FilesInfo .lastModified,
964
+ FilesInfo .exists,
965
+ ) { _ =>
966
+ if (trgDir.exists) IO .delete(trgDir)
967
+ dottyLibSourceDirs.foreach { dir =>
968
+ if (dir.exists) {
969
+ s.log.info(s " Copying scala3-library sources from $dir to $trgDir... " )
970
+ IO .copyDirectory(dir, trgDir)
971
+ }
972
+ }
973
+
974
+ ((trgDir ** " *.scala" ) +++ (trgDir ** " *.java" )).get.toSet
975
+ }
976
+
977
+ cachedFun(dottyLibSources.get.toSet).toSeq
978
+ }.taskValue,
979
+ mimaCheckDirection := " none" ,
980
+ )
981
+
929
982
/** Scala 2 library compiled by dotty using the latest published sources of the library.
930
983
*
931
984
* This version of the library is not (yet) TASTy/binary compatible with the Scala 2 compiled library.
@@ -934,7 +987,15 @@ object Build {
934
987
withCommonSettings(Bootstrapped ).
935
988
dependsOn(dottyCompiler(Bootstrapped ) % " provided; compile->runtime; test->test" ).
936
989
settings(commonBootstrappedSettings).
990
+ settings(stdlibBootstrappedCommonSettings).
937
991
settings(
992
+ Compile / scalacOptions ++= {
993
+ Seq (" -sourcepath" , ((Compile / sourceManaged).value / " scala-library-src" ).toString)
994
+ },
995
+ )
996
+
997
+ lazy val stdlibBootstrappedCommonSettings =
998
+ Seq (
938
999
moduleName := " scala-library" ,
939
1000
javaOptions := (`scala3-compiler-bootstrapped` / javaOptions).value,
940
1001
Compile / scalacOptions ++= {
@@ -1958,7 +2019,7 @@ object ScaladocConfigs {
1958
2019
1959
2020
def defaultSourceLinks (version : String = dottyNonBootstrappedVersion, refVersion : String = dottyVersion) = Def .task {
1960
2021
def stdLibVersion = stdlibVersion(NonBootstrapped )
1961
- def srcManaged (v : String , s : String ) = s " out/bootstrap/stdlib-bootstrapped/scala- $v/src_managed/main/ $s-library-src "
2022
+ def srcManaged (v : String , s : String ) = s " out/bootstrap/stdlib-bootstrapped-legacy /scala- $v/src_managed/main/ $s-library-src "
1962
2023
SourceLinks (
1963
2024
List (
1964
2025
scalaSrcLink(stdLibVersion, srcManaged(version, " scala" ) + " =" ),
@@ -2046,21 +2107,21 @@ object ScaladocConfigs {
2046
2107
2047
2108
lazy val Scala3 = Def .task {
2048
2109
val dottyJars : Seq [java.io.File ] = Seq (
2049
- (`stdlib-bootstrapped`/ Compile / products).value,
2110
+ (`stdlib-bootstrapped-legacy `/ Compile / products).value,
2050
2111
(`scala3-interfaces`/ Compile / products).value,
2051
2112
(`tasty-core-bootstrapped`/ Compile / products).value,
2052
2113
).flatten
2053
2114
2054
2115
val roots = dottyJars.map(_.getAbsolutePath)
2055
2116
2056
2117
val managedSources =
2057
- (`stdlib-bootstrapped`/ Compile / sourceManaged).value / " scala-library-src"
2118
+ (`stdlib-bootstrapped-legacy `/ Compile / sourceManaged).value / " scala-library-src"
2058
2119
val projectRoot = (ThisBuild / baseDirectory).value.toPath
2059
2120
val stdLibRoot = projectRoot.relativize(managedSources.toPath.normalize())
2060
2121
val docRootFile = stdLibRoot.resolve(" rootdoc.txt" )
2061
2122
2062
2123
val dottyManagesSources =
2063
- (`stdlib-bootstrapped`/ Compile / sourceManaged).value / " dotty-library-src"
2124
+ (`stdlib-bootstrapped-legacy `/ Compile / sourceManaged).value / " dotty-library-src"
2064
2125
2065
2126
val tastyCoreSources = projectRoot.relativize((`tasty-core-bootstrapped`/ Compile / scalaSource).value.toPath().normalize())
2066
2127
@@ -2093,19 +2154,19 @@ object ScaladocConfigs {
2093
2154
.add(ProjectVersion (version))
2094
2155
.add(SnippetCompiler (
2095
2156
List (
2096
- s " out/bootstrap/stdlib-bootstrapped/scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/dotty-library-src/scala/quoted=compile " ,
2097
- s " out/bootstrap/stdlib-bootstrapped/scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/dotty-library-src/scala/compiletime=compile "
2157
+ s " out/bootstrap/stdlib-bootstrapped-legacy /scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/dotty-library-src/scala/quoted=compile " ,
2158
+ s " out/bootstrap/stdlib-bootstrapped-legacy /scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/dotty-library-src/scala/compiletime=compile "
2098
2159
)
2099
2160
))
2100
2161
.add(CommentSyntax (List (
2101
- s " out/bootstrap/stdlib-bootstrapped/scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/dotty-library-src=markdown " ,
2102
- s " out/bootstrap/stdlib-bootstrapped/scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/scala-library-src=wiki " ,
2162
+ s " out/bootstrap/stdlib-bootstrapped-legacy /scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/dotty-library-src=markdown " ,
2163
+ s " out/bootstrap/stdlib-bootstrapped-legacy /scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/scala-library-src=wiki " ,
2103
2164
" wiki"
2104
2165
)))
2105
- .add(DocRootContent (s " out/bootstrap/stdlib-bootstrapped/scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/scala-library-src/rootdoc.txt " ))
2166
+ .add(DocRootContent (s " out/bootstrap/stdlib-bootstrapped-legacy /scala- $version-bin-SNAPSHOT-nonbootstrapped/src_managed/main/scala-library-src/rootdoc.txt " ))
2106
2167
.withTargets(
2107
2168
Seq (
2108
- s " out/bootstrap/stdlib-bootstrapped/scala- $version-bin-SNAPSHOT-nonbootstrapped/classes " ,
2169
+ s " out/bootstrap/stdlib-bootstrapped-legacy /scala- $version-bin-SNAPSHOT-nonbootstrapped/classes " ,
2109
2170
s " tmp/interfaces/target/classes " ,
2110
2171
s " out/bootstrap/tasty-core-bootstrapped/scala- $version-bin-SNAPSHOT-nonbootstrapped/classes "
2111
2172
)
0 commit comments