Skip to content

Commit 264c118

Browse files
committed
SBT: refactor external library dependencies
1 parent e39ea06 commit 264c118

File tree

1 file changed

+37
-60
lines changed

1 file changed

+37
-60
lines changed

build.sbt

+37-60
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,16 @@ lazy val runtime = project
197197
)
198198
.dependsOn(interfaces)
199199

200-
val excludePprint = ExclusionRule(organization = "com.lihaoyi")
201-
val excludeCollection =
202-
ExclusionRule(organization = "org.scala-lang.modules", name = "scala-collection-compat_2.13")
200+
lazy val depScalameta = Def.settings(
201+
libraryDependencies += {
202+
val sm = ("org.scalameta" %% "scalameta" % V.scalameta).excludeAll("com.lihaoyi")
203+
if (isScala3.value)
204+
sm.excludeAll(
205+
"org.scala-lang.modules" % s"scala-collection-compat_${scalaBinaryVersion.value}"
206+
).cross(CrossVersion.for3Use2_13)
207+
else sm
208+
}
209+
)
203210

204211
lazy val parser = crossProject(JVMPlatform, NativePlatform, JSPlatform)
205212
.withoutSuffixFor(JVMPlatform)
@@ -220,19 +227,7 @@ lazy val cli = project
220227
"com.lihaoyi" %% "pprint" % V.pprint,
221228
"org.scalameta" %% "metaconfig-typesafe-config" % V.metaconfig
222229
),
223-
libraryDependencies ++= crossSetting(
224-
scalaVersion.value,
225-
if2 = List(
226-
("org.scalameta" %% "scalameta" % V.scalameta)
227-
.excludeAll(excludePprint)
228-
),
229-
if3 = List(
230-
("org.scalameta" %% "scalameta" % V.scalameta)
231-
.excludeAll(excludePprint)
232-
.excludeAll(excludeCollection)
233-
.cross(CrossVersion.for3Use2_13)
234-
)
235-
)
230+
depScalameta
236231
)
237232
.dependsOn(parser.jvm)
238233

@@ -249,21 +244,13 @@ lazy val mdoc = project
249244
scalaVersion,
250245
scalaBinaryVersion
251246
),
252-
libraryDependencies ++= crossSetting(
253-
scalaVersion.value,
254-
if3 = List(
255-
"org.scala-lang" %% "scala3-compiler" % scalaVersion.value,
256-
("org.scalameta" %% "scalameta" % V.scalameta)
257-
.excludeAll(excludePprint)
258-
.excludeAll(excludeCollection)
259-
.cross(CrossVersion.for3Use2_13)
260-
),
261-
if2 = List(
262-
"org.scala-lang" % "scala-compiler" % scalaVersion.value,
263-
("org.scalameta" %% "scalameta" % V.scalameta)
264-
.excludeAll(excludePprint)
265-
)
266-
),
247+
depScalameta,
248+
libraryDependencies += {
249+
if (isScala3.value)
250+
"org.scala-lang" %% "scala3-compiler" % scalaVersion.value
251+
else
252+
"org.scala-lang" % "scala-compiler" % scalaVersion.value
253+
},
267254
libraryDependencies ++= jsoniter,
268255
libraryDependencies ++= List(
269256
"com.googlecode.java-diff-utils" % "diffutils" % "1.3.0",
@@ -299,9 +286,7 @@ val tests = project
299286
.settings(
300287
sharedSettings,
301288
publish / skip := true,
302-
libraryDependencies ++= List(
303-
"org.scalameta" %% "munit" % V.munit
304-
),
289+
depMunit,
305290
buildInfoPackage := "tests",
306291
buildInfoKeys := Seq[BuildInfoKey](
307292
scalaVersion,
@@ -318,9 +303,7 @@ val jsdocs = project
318303
scalaJSLinkerConfig ~= {
319304
_.withModuleKind(ModuleKind.CommonJSModule)
320305
},
321-
libraryDependencies ++= List(
322-
"org.scala-js" %%% "scalajs-dom" % scalajsDom
323-
),
306+
depJsDom,
324307
scalaJSUseMainModuleInitializer := true,
325308
Compile / npmDependencies ++= List(
326309
"ms" -> "2.1.1"
@@ -337,9 +320,7 @@ val jswebsitedocs = project
337320
scalaJSLinkerConfig ~= {
338321
_.withModuleKind(ModuleKind.ESModule)
339322
},
340-
libraryDependencies ++= List(
341-
"org.scala-js" %%% "scalajs-dom" % scalajsDom
342-
)
323+
depJsDom
343324
)
344325
.enablePlugins(ScalaJSPlugin)
345326

@@ -348,9 +329,7 @@ lazy val worksheets = project
348329
.settings(
349330
sharedSettings,
350331
publish / skip := true,
351-
libraryDependencies ++= List(
352-
"org.scalameta" %% "munit" % V.munit % Test
353-
)
332+
depMunit % Test
354333
)
355334
.dependsOn(mdoc, tests)
356335

@@ -369,19 +348,11 @@ lazy val unit = project
369348
"io.github.cibotech" %% "evilplot" % "0.9.2"
370349
)
371350
),
372-
libraryDependencies ++= List(
373-
"org.scalameta" %% "munit" % V.munit % Test
374-
),
375-
libraryDependencies ++= crossSetting(
376-
scalaVersion.value,
377-
if3 = List(
378-
("co.fs2" %% "fs2-core" % V.fs2)
379-
.cross(CrossVersion.for3Use2_13)
380-
),
381-
if2 = List(
382-
"co.fs2" %% "fs2-core" % V.fs2
383-
)
384-
),
351+
depMunit % Test,
352+
libraryDependencies += {
353+
val dep = "co.fs2" %% "fs2-core" % V.fs2
354+
if (isScala3.value) dep.cross(CrossVersion.for3Use2_13) else dep
355+
},
385356
buildInfoPackage := "tests.cli",
386357
buildInfoKeys := Seq[BuildInfoKey](
387358
"testsInputClassDirectory" -> (testsInput / Compile / classDirectory).value
@@ -396,9 +367,7 @@ lazy val unitJS = project
396367
sharedSettings,
397368
publish / skip := true,
398369
Compile / unmanagedSourceDirectories ++= multiScalaDirectories("tests/unit-js").value,
399-
libraryDependencies ++= List(
400-
"org.scalameta" %% "munit" % V.munit % Test
401-
),
370+
depMunit % Test,
402371
buildInfoPackage := "tests.js",
403372
buildInfoKeys := Seq[BuildInfoKey](
404373
"testsInputClassDirectory" -> (testsInput / Compile / classDirectory).value
@@ -426,10 +395,10 @@ lazy val plugin = project
426395
pluginCrossBuild / sbtVersion := "1.1.6",
427396
crossScalaVersions := List(scala212),
428397
moduleName := "sbt-mdoc",
398+
depMunit % Test,
429399
libraryDependencies ++= List(
430400
"org.jsoup" % "jsoup" % "1.12.1",
431401
"org.scalacheck" %% "scalacheck" % V.scalacheck % Test,
432-
"org.scalameta" %% "munit" % V.munit % Test,
433402
"org.scalameta" %% "testkit" % V.scalameta % Test
434403
),
435404
Compile / resourceGenerators += Def.task {
@@ -563,3 +532,11 @@ def localCrossPublishProject(ref: Project, scalaV: String): Def.Initialize[Task[
563532
)
564533
val _ = Project.extract(newState).runTask(ref / publishLocal, newState)
565534
}
535+
536+
val depMunit = Def.settings(
537+
libraryDependencies += "org.scalameta" %% "munit" % V.munit
538+
)
539+
540+
val depJsDom = Def.settings(
541+
libraryDependencies += "org.scala-js" %%% "scalajs-dom" % scalajsDom
542+
)

0 commit comments

Comments
 (0)