@@ -5,6 +5,7 @@ import com.github.lolgab.mill.mima._
55import de .tobiasroeser .mill .vcs .version ._
66import mill ._
77import mill .scalajslib ._
8+ import mill .scalanativelib ._
89import mill .scalalib ._
910import mill .scalalib .publish ._
1011
@@ -14,6 +15,7 @@ object DepVersions {
1415 def mdoc = " 2.3.6"
1516 def scala213 = " 2.13.16"
1617 def scalaJs = " 1.18.1"
18+ def scalaNative = " 0.5.6"
1719
1820 def scala = Seq (scala213, " 2.12.20" )
1921}
@@ -142,9 +144,43 @@ trait VersionsJs extends Versions with ScalaJSModule {
142144 }
143145}
144146
147+ trait VersionsNative extends Versions with ScalaNativeModule {
148+ def scalaNativeVersion = DepVersions .scalaNative
149+
150+ def mimaPreviousVersions = T {
151+ val cutOff = coursier.core.Version (" 0.3.3" )
152+ super .mimaPreviousVersions().filter { v =>
153+ coursier.core.Version (v) > cutOff
154+ }
155+ }
156+
157+ // required if mimaPreviousVersions is empty
158+ def mimaPreviousArtifacts = T {
159+ val versions = mimaPreviousVersions().distinct
160+ mill.api.Result .Success (
161+ Agg .from(
162+ versions.map(version =>
163+ ivy " ${pomSettings().organization}: ${artifactId()}: $version"
164+ )
165+ )
166+ )
167+ }
168+
169+ object test extends ScalaNativeTests {
170+ def ivyDeps = super .ivyDeps() ++ Agg (
171+ Deps .utest
172+ )
173+ def testFramework = " utest.runner.Framework"
174+ def sources = T .sources {
175+ super .sources() ++ testSources()
176+ }
177+ }
178+ }
179+
145180object versions extends Module {
146181 object jvm extends Cross [VersionsJvm ](DepVersions .scala)
147182 object js extends Cross [VersionsJs ](DepVersions .scala)
183+ object native extends Cross [VersionsNative ](DepVersions .scala)
148184}
149185
150186
0 commit comments