11import sbtcrossproject .CrossProject
22import sbtcrossproject .CrossType
33
4- val munitVersion = " 0.7.29"
5- val scalametaVersion = " 4.4.28"
6- val defaultScala213 = " 2.13.6"
7- val bin212 =
4+ lazy val munitVersion = " 0.7.29"
5+ lazy val scalametaVersion = " 4.4.28"
6+ lazy val defaultScala212 = " 2.12.15"
7+ lazy val defaultScala213 = " 2.13.6"
8+ lazy val defaultScala3 = " 3.1.0"
9+ lazy val bin212 =
810 Seq (
9- " 2.12.15 " ,
11+ defaultScala212 ,
1012 " 2.12.14" ,
1113 " 2.12.13" ,
1214 " 2.12.12" ,
@@ -15,7 +17,7 @@ val bin212 =
1517 " 2.12.9" ,
1618 " 2.12.8"
1719 )
18- val bin213 =
20+ lazy val bin213 =
1921 Seq (
2022 defaultScala213,
2123 " 2.13.5" ,
@@ -80,8 +82,7 @@ lazy val sharedSettings = List(
8082 } else {
8183 scalacOptions.value
8284 }
83- },
84- crossScalaVersions := bin212 ++ bin213
85+ }
8586)
8687
8788lazy val root = Project (" scalac-scoverage" , file(" ." ))
@@ -90,16 +91,17 @@ lazy val root = Project("scalac-scoverage", file("."))
9091 publishArtifact := false ,
9192 publishLocal := {}
9293 )
93- .aggregate(plugin, runtime.jvm, runtime.js)
94+ .aggregate(plugin, runtime.jvm, runtime.js, reporter, domain, serializer )
9495
9596lazy val runtime = CrossProject (
96- " scalac-scoverage- runtime" ,
97- file(" scalac-scoverage- runtime" )
97+ " runtime" ,
98+ file(" runtime" )
9899)(JVMPlatform , JSPlatform )
99100 .crossType(CrossType .Full )
100101 .withoutSuffixFor(JVMPlatform )
101102 .settings(
102103 name := " scalac-scoverage-runtime" ,
104+ crossScalaVersions := Seq (defaultScala212, defaultScala213),
103105 crossTarget := target.value / s " scala- ${scalaVersion.value}" ,
104106 libraryDependencies ++= Seq (
105107 " org.scalameta" %% " munit" % munitVersion % Test
@@ -113,26 +115,63 @@ lazy val runtime = CrossProject(
113115 scalaJSStage := FastOptStage
114116 )
115117
116- lazy val `scalac-scoverage- runtimeJVM` = runtime.jvm
117- lazy val `scalac-scoverage- runtimeJS` = runtime.js
118+ lazy val `runtimeJVM` = runtime.jvm
119+ lazy val `runtimeJS` = runtime.js
118120
119121lazy val plugin =
120- Project ( " scalac-scoverage-plugin " , file( " scalac-scoverage-plugin " ))
121- .dependsOn(`scalac-scoverage- runtimeJVM` % Test )
122+ project
123+ .dependsOn(runtimeJVM % Test )
122124 .settings(
123125 name := " scalac-scoverage-plugin" ,
124126 crossTarget := target.value / s " scala- ${scalaVersion.value}" ,
127+ crossScalaVersions := bin212 ++ bin213,
125128 crossVersion := CrossVersion .full,
126129 libraryDependencies ++= Seq (
127- " org.scala-lang.modules" %% " scala-xml" % " 2.0.0" ,
128130 " org.scalameta" %% " munit" % munitVersion % Test ,
129131 " org.scala-lang" % " scala-compiler" % scalaVersion.value % Provided
130132 ),
131133 sharedSettings
132134 )
133135 .settings(
134- (Test / unmanagedSourceDirectories) += (Test / sourceDirectory).value / " scala-2.12+"
136+ Test / unmanagedSourceDirectories += (Test / sourceDirectory).value / " scala-2.12+"
137+ )
138+ .dependsOn(domain, reporter % " test->compile" , serializer)
139+
140+ lazy val reporter =
141+ project
142+ .settings(
143+ name := " scalac-scoverage-reporter" ,
144+ libraryDependencies ++= Seq (
145+ " org.scala-lang.modules" %% " scala-xml" % " 2.0.0" ,
146+ " org.scalameta" %% " munit" % munitVersion % Test
147+ ),
148+ sharedSettings,
149+ crossScalaVersions := Seq (defaultScala212, defaultScala213, defaultScala3)
150+ )
151+ .dependsOn(domain, serializer)
152+
153+ lazy val domain =
154+ project
155+ .settings(
156+ name := " scalac-scoverage-domain" ,
157+ libraryDependencies ++= Seq (
158+ " org.scalameta" %% " munit" % munitVersion % Test
159+ ),
160+ sharedSettings,
161+ crossScalaVersions := Seq (defaultScala212, defaultScala213, defaultScala3)
162+ )
163+
164+ lazy val serializer =
165+ project
166+ .settings(
167+ name := " scalac-scoverage-serializer" ,
168+ libraryDependencies ++= Seq (
169+ " org.scalameta" %% " munit" % munitVersion % Test
170+ ),
171+ sharedSettings,
172+ crossScalaVersions := Seq (defaultScala212, defaultScala213, defaultScala3)
135173 )
174+ .dependsOn(domain)
136175
137176addCommandAlias(
138177 " styleFix" ,
0 commit comments