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