@@ -197,9 +197,16 @@ lazy val runtime = project
197
197
)
198
198
.dependsOn(interfaces)
199
199
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
+ )
203
210
204
211
lazy val parser = crossProject(JVMPlatform , NativePlatform , JSPlatform )
205
212
.withoutSuffixFor(JVMPlatform )
@@ -220,19 +227,7 @@ lazy val cli = project
220
227
" com.lihaoyi" %% " pprint" % V .pprint,
221
228
" org.scalameta" %% " metaconfig-typesafe-config" % V .metaconfig
222
229
),
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
236
231
)
237
232
.dependsOn(parser.jvm)
238
233
@@ -249,21 +244,13 @@ lazy val mdoc = project
249
244
scalaVersion,
250
245
scalaBinaryVersion
251
246
),
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
+ },
267
254
libraryDependencies ++= jsoniter,
268
255
libraryDependencies ++= List (
269
256
" com.googlecode.java-diff-utils" % " diffutils" % " 1.3.0" ,
@@ -299,9 +286,7 @@ val tests = project
299
286
.settings(
300
287
sharedSettings,
301
288
publish / skip := true ,
302
- libraryDependencies ++= List (
303
- " org.scalameta" %% " munit" % V .munit
304
- ),
289
+ depMunit,
305
290
buildInfoPackage := " tests" ,
306
291
buildInfoKeys := Seq [BuildInfoKey ](
307
292
scalaVersion,
@@ -318,9 +303,7 @@ val jsdocs = project
318
303
scalaJSLinkerConfig ~= {
319
304
_.withModuleKind(ModuleKind .CommonJSModule )
320
305
},
321
- libraryDependencies ++= List (
322
- " org.scala-js" %%% " scalajs-dom" % scalajsDom
323
- ),
306
+ depJsDom,
324
307
scalaJSUseMainModuleInitializer := true ,
325
308
Compile / npmDependencies ++= List (
326
309
" ms" -> " 2.1.1"
@@ -337,9 +320,7 @@ val jswebsitedocs = project
337
320
scalaJSLinkerConfig ~= {
338
321
_.withModuleKind(ModuleKind .ESModule )
339
322
},
340
- libraryDependencies ++= List (
341
- " org.scala-js" %%% " scalajs-dom" % scalajsDom
342
- )
323
+ depJsDom
343
324
)
344
325
.enablePlugins(ScalaJSPlugin )
345
326
@@ -348,9 +329,7 @@ lazy val worksheets = project
348
329
.settings(
349
330
sharedSettings,
350
331
publish / skip := true ,
351
- libraryDependencies ++= List (
352
- " org.scalameta" %% " munit" % V .munit % Test
353
- )
332
+ depMunit % Test
354
333
)
355
334
.dependsOn(mdoc, tests)
356
335
@@ -369,19 +348,11 @@ lazy val unit = project
369
348
" io.github.cibotech" %% " evilplot" % " 0.9.2"
370
349
)
371
350
),
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
+ },
385
356
buildInfoPackage := " tests.cli" ,
386
357
buildInfoKeys := Seq [BuildInfoKey ](
387
358
" testsInputClassDirectory" -> (testsInput / Compile / classDirectory).value
@@ -396,9 +367,7 @@ lazy val unitJS = project
396
367
sharedSettings,
397
368
publish / skip := true ,
398
369
Compile / unmanagedSourceDirectories ++= multiScalaDirectories(" tests/unit-js" ).value,
399
- libraryDependencies ++= List (
400
- " org.scalameta" %% " munit" % V .munit % Test
401
- ),
370
+ depMunit % Test ,
402
371
buildInfoPackage := " tests.js" ,
403
372
buildInfoKeys := Seq [BuildInfoKey ](
404
373
" testsInputClassDirectory" -> (testsInput / Compile / classDirectory).value
@@ -426,10 +395,10 @@ lazy val plugin = project
426
395
pluginCrossBuild / sbtVersion := " 1.1.6" ,
427
396
crossScalaVersions := List (scala212),
428
397
moduleName := " sbt-mdoc" ,
398
+ depMunit % Test ,
429
399
libraryDependencies ++= List (
430
400
" org.jsoup" % " jsoup" % " 1.12.1" ,
431
401
" org.scalacheck" %% " scalacheck" % V .scalacheck % Test ,
432
- " org.scalameta" %% " munit" % V .munit % Test ,
433
402
" org.scalameta" %% " testkit" % V .scalameta % Test
434
403
),
435
404
Compile / resourceGenerators += Def .task {
@@ -563,3 +532,11 @@ def localCrossPublishProject(ref: Project, scalaV: String): Def.Initialize[Task[
563
532
)
564
533
val _ = Project .extract(newState).runTask(ref / publishLocal, newState)
565
534
}
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