Skip to content

Commit 0cc4347

Browse files
authored
Merge pull request #618 from alexarchambault/tweaking
Tweaking
2 parents e8ff8dc + 557355c commit 0cc4347

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+435
-401
lines changed

.scalafmt.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ fileOverride {
4646
}
4747
}
4848
project.excludeFilters = [
49+
".bloop"
4950
".metals"
51+
".scala-build"
5052
"examples" # Scala 3 scripts and using directives not supported yet
5153
"out"
5254
"scala-version.scala"

build.sc

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,16 @@ class Build(val crossScalaVersion: String)
233233
""" !sv.startsWith("2.") """
234234
else
235235
"false"
236+
val detailedVersionValue =
237+
if (`local-repo`.developingOnStubModules) s"""Some("${vcsState()}")"""
238+
else "None"
236239
val code =
237240
s"""package scala.build.internal
238241
|
239242
|/** Build-time constants. Generated by mill. */
240243
|object Constants {
241244
| def version = "${publishVersion()}"
242-
| def detailedVersion = "${vcsState()}"
245+
| def detailedVersion: Option[String] = $detailedVersionValue
243246
|
244247
| def scalaJsVersion = "${Deps.scalaJsLinker.dep.version}"
245248
| def scalaNativeVersion = "${Deps.nativeTools.dep.version}"
@@ -613,6 +616,14 @@ class TastyLib(val crossScalaVersion: String) extends ScalaCliCrossSbtModule
613616
}
614617

615618
object `local-repo` extends LocalRepo {
619+
620+
/*
621+
* If you are developing locally on any of the stub modules (stubs, runner, test-runner),
622+
* set this to true, so that Mill's watch mode takes into account changes in those modules
623+
* when embedding their JARs in the Scala CLI launcher.
624+
*/
625+
def developingOnStubModules = false
626+
616627
def stubsModules = {
617628
val javaModules = Seq(
618629
stubs

modules/build/src/main/scala/scala/build/Build.scala

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ object Build {
6868
else
6969
Left(
7070
new SeveralMainClassesFoundError(
71-
::(foundMainClasses0.head, foundMainClasses0.tail.toList)
71+
::(foundMainClasses0.head, foundMainClasses0.tail.toList),
72+
Nil
7273
)
7374
)
7475

@@ -206,7 +207,6 @@ object Build {
206207
val res = build(
207208
inputs0,
208209
sources0,
209-
inputs0.generatedSrcRoot(scope),
210210
generatedSources,
211211
options,
212212
scope,
@@ -298,7 +298,6 @@ object Build {
298298
private def build(
299299
inputs: Inputs,
300300
sources: Sources,
301-
generatedSrcRoot0: os.Path,
302301
generatedSources: Seq[GeneratedSource],
303302
options: BuildOptions,
304303
scope: Scope,
@@ -311,7 +310,6 @@ object Build {
311310
buildOnce(
312311
inputs,
313312
sources,
314-
generatedSrcRoot0,
315313
generatedSources,
316314
options,
317315
scope,
@@ -732,7 +730,6 @@ object Build {
732730
def buildOnce(
733731
inputs: Inputs,
734732
sources: Sources,
735-
generatedSrcRoot0: os.Path,
736733
generatedSources: Seq[GeneratedSource],
737734
options0: BuildOptions,
738735
scope: Scope,

modules/build/src/main/scala/scala/build/bsp/BspImpl.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ final class BspImpl(
156156
Build.buildOnce(
157157
inputs,
158158
data.sources,
159-
inputs.generatedSrcRoot(scope),
160159
data.generatedSources,
161160
data.buildOptions,
162161
scope,
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
11
package scala.build.errors
22

3-
abstract class MainClassError(message: String) extends BuildException(message)
3+
import scala.build.Position
4+
5+
abstract class MainClassError(
6+
message: String,
7+
positions: Seq[Position]
8+
) extends BuildException(message, positions = positions)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package scala.build.errors
2+
3+
import scala.build.Position
4+
5+
final class MalformedDirectiveError(message: String, positions: Seq[Position])
6+
extends BuildException(message, positions)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package scala.build.errors
22

3-
final class NoMainClassFoundError extends MainClassError("No main class found")
3+
final class NoMainClassFoundError extends MainClassError("No main class found", Nil)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package scala.build.errors
2+
3+
import scala.build.preprocessing.directives.StrictDirective
4+
5+
final class NoValueProvidedError(
6+
val directive: StrictDirective
7+
) extends BuildException(
8+
s"Expected a value for directive ${directive.key}",
9+
positions = Nil // I wish using_directives provided the key position…
10+
) {
11+
assert(directive.numericalOrStringValuesCount == 0)
12+
}
Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
package scala.build.errors
22

3-
final class SeveralMainClassesFoundError(mainClasses: ::[String])
4-
extends MainClassError(s"Found several main classes: ${mainClasses.mkString(", ")}")
3+
import scala.build.Position
4+
5+
final class SeveralMainClassesFoundError(
6+
mainClasses: ::[String],
7+
positions: Seq[Position]
8+
) extends MainClassError(
9+
s"Found several main classes: ${mainClasses.mkString(", ")}",
10+
positions = positions
11+
)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package scala.build.errors
2+
3+
import scala.build.preprocessing.directives.{DirectiveUtil, StrictDirective}
4+
5+
final class SingleValueExpectedError(
6+
val directive: StrictDirective,
7+
val path: Either[String, os.Path]
8+
) extends BuildException(
9+
s"Expected a single value for directive ${directive.key} " +
10+
s"(got ${directive.values.length} values: ${directive.values.map(_.get().toString).mkString(", ")})",
11+
positions = DirectiveUtil.positions(directive.values, path)
12+
) {
13+
assert(directive.numericalOrStringValuesCount > 1)
14+
}

0 commit comments

Comments
 (0)