-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathbuild.mill
More file actions
114 lines (100 loc) · 3.37 KB
/
Copy pathbuild.mill
File metadata and controls
114 lines (100 loc) · 3.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
//| mill-version: 1.1.7
//| mvnDeps:
//| - com.goyeau::mill-scalafix::0.6.0
//| - com.lihaoyi::mill-contrib-buildinfo:$MILL_VERSION
package build
import mill._, mill.scalalib._, mill.scalanativelib._, mill.scalanativelib.api._
import mill.javalib.api.JvmWorkerUtil.isScala3
import mill.scalalib.publish._
import mill.util.Jvm
import com.goyeau.mill.scalafix.ScalafixModule
import mill.util.VcsVersion
import mill.contrib.buildinfo.BuildInfo
import scala.util.Properties
val scala212 = "2.12.21"
val scala213 = "2.13.18"
val scala3 = "3.3.7"
val scalaVersions = Seq(scala212, scala213, scala3)
trait Shared
extends CrossScalaModule
with ScalafixModule
with ScalaNativeModule {
def organization = "com.github.lolgab"
def scalaNativeVersion = "0.5.12"
def scalacOptions =
super.scalacOptions() ++ (if (isScala3(crossScalaVersion)) Seq()
else Seq("-Ywarn-unused"))
}
trait Test extends TestModule.Utest {
def test() = testForked()
override def mvnDeps = super.mvnDeps() ++ Seq(
mvn"com.lihaoyi::utest::0.9.5"
)
}
trait Publish extends PublishModule {
def pomSettings =
PomSettings(
description =
"Scala Native java.security implementation based on OpenSSL",
organization = "com.github.lolgab",
url = "https://github.com/lolgab/scala-native-crypto",
licenses = Seq(License.`Apache-2.0`),
versionControl =
VersionControl.github(owner = "lolgab", repo = "scala-native-crypto"),
developers = Seq(
Developer("lolgab", "Lorenzo Gabriele", "https://github.com/lolgab")
)
)
def publishVersion = VcsVersion.vcsState().format()
}
object `scala-native-crypto`
extends Cross[ScalaNativeCryptoModule](scalaVersions)
trait ScalaNativeCryptoModule extends Shared with Publish {
def scalacOptions = super.scalacOptions() ++ Seq(
"-P:scalanative:genStaticForwardersForNonTopLevelObjects"
)
}
object tests extends Module {
object jvm extends Cross[TestsJvmModule](scalaVersions)
trait TestsJvmModule extends CrossScalaModule with Test {
override def moduleDir = super.moduleDir / os.up
}
object native extends Cross[TestsNativeModule](scalaVersions)
trait TestsNativeModule
extends CrossScalaModule
with Shared
with Test
with TestScalaNativeModule {
override def moduleDeps =
super.moduleDeps ++ Seq(`scala-native-crypto`(crossScalaVersion))
override def moduleDir = super.moduleDir / os.up
}
}
object `jwt-scala-tests` extends Module {
trait SharedJwtScalaTestsModule extends ScalaModule {
override def mvnDeps = super.mvnDeps() ++ Seq(
mvn"com.github.jwt-scala::jwt-upickle::11.0.3"
)
}
object jvm extends Cross[JwtScalaTestsJvmModule](scala3)
trait JwtScalaTestsJvmModule
extends CrossScalaModule
with SharedJwtScalaTestsModule
with Test {
override def moduleDir = super.moduleDir / os.up
}
object native extends Cross[JwtScalaTestsNativeModule](scala3)
trait JwtScalaTestsNativeModule
extends CrossScalaModule
with SharedJwtScalaTestsModule
with Shared
with Test
with TestScalaNativeModule {
override def moduleDeps =
super.moduleDeps ++ Seq(`scala-native-crypto`(crossScalaVersion))
override def moduleDir = super.moduleDir / os.up
override def mvnDeps = super.mvnDeps() ++ Seq(
mvn"io.github.cquiroz::scala-java-time::2.6.0"
)
}
}