@@ -1252,7 +1252,7 @@ object Build {
1252
1252
val generateScalaDocumentation = inputKey[Unit ](" Generate documentation for dotty lib" )
1253
1253
val generateTestcasesDocumentation = taskKey[Unit ](" Generate documentation for testcases, usefull for debugging tests" )
1254
1254
1255
- val generateReferenceDocumentation = taskKey [Unit ](" Generate language reference documentation for Scala 3" )
1255
+ val generateReferenceDocumentation = inputKey [Unit ](" Generate language reference documentation for Scala 3" )
1256
1256
1257
1257
lazy val `scaladoc-testcases` = project.in(file(" scaladoc-testcases" )).
1258
1258
dependsOn(`scala3-compiler-bootstrapped`).
@@ -1376,7 +1376,12 @@ object Build {
1376
1376
generateDocumentation(Testcases )
1377
1377
}.value,
1378
1378
1379
- generateReferenceDocumentation := Def .taskDyn {
1379
+ generateReferenceDocumentation := Def .inputTaskDyn {
1380
+ val shouldRegenerateExpectedLinks = spaceDelimited(" [--no-regenerate-expected-links]" ).parsed match {
1381
+ case " --no-regenerate-expected-links" :: rest => false
1382
+ case _ => true
1383
+ }
1384
+
1380
1385
val temp = IO .createTemporaryDirectory
1381
1386
IO .copyDirectory(file(" docs" ), temp / " docs" )
1382
1387
IO .delete(temp / " docs" / " _blog" )
@@ -1399,8 +1404,18 @@ object Build {
1399
1404
.withTargets(List (" ___fake___.scala" ))
1400
1405
}
1401
1406
1402
- generateDocumentation(languageReferenceConfig)
1403
- }.value,
1407
+ val expectedLinksRegeneration = Def .task {
1408
+ if (shouldRegenerateExpectedLinks) {
1409
+ val script = (file(" project" ) / " scripts" / " regenerateExpectedLinks" ).toString
1410
+ val outputDir = languageReferenceConfig.value.get[OutputDir ].get.value
1411
+ val expectedLinksFile = (file(" project" ) / " scripts" / " expected-links" / " reference-expected-links.txt" ).toString
1412
+ import _root_ .scala .sys .process ._
1413
+ s " $script $outputDir $expectedLinksFile" !
1414
+ }
1415
+ }
1416
+
1417
+ expectedLinksRegeneration.dependsOn(generateDocumentation(languageReferenceConfig))
1418
+ }.evaluated,
1404
1419
1405
1420
Test / buildInfoKeys := Seq [BuildInfoKey ](
1406
1421
(Test / Build .testcasesOutputDir),
0 commit comments