xref: /XiangShan/build.sc (revision 2905e4638c85119aba5ae6f74dacc9b5d0748c18)
1*2905e463SZihao Yuimport mill._, scalalib._
2*2905e463SZihao Yuimport coursier.maven.MavenRepository
3*2905e463SZihao Yu
4*2905e463SZihao Yuobject CustomZincWorkerModule extends ZincWorkerModule {
5*2905e463SZihao Yu  def repositories() = super.repositories ++ Seq(
6*2905e463SZihao Yu    MavenRepository("https://oss.sonatype.org/content/repositories/releases"),
7*2905e463SZihao Yu    MavenRepository("https://oss.sonatype.org/content/repositories/snapshots")
8*2905e463SZihao Yu  )
9*2905e463SZihao Yu}
10*2905e463SZihao Yu
11*2905e463SZihao Yu/**
12*2905e463SZihao Yu * Scala 2.12 module that is source-compatible with 2.11.
13*2905e463SZihao Yu * This is due to Chisel's use of structural types. See
14*2905e463SZihao Yu * https://github.com/freechipsproject/chisel3/issues/606
15*2905e463SZihao Yu */
16*2905e463SZihao Yutrait HasXsource211 extends ScalaModule {
17*2905e463SZihao Yu  override def scalacOptions = T {
18*2905e463SZihao Yu    super.scalacOptions() ++ Seq(
19*2905e463SZihao Yu      "-deprecation",
20*2905e463SZihao Yu      "-unchecked",
21*2905e463SZihao Yu      "-Xsource:2.11"
22*2905e463SZihao Yu    )
23*2905e463SZihao Yu  }
24*2905e463SZihao Yu}
25*2905e463SZihao Yu
26*2905e463SZihao Yutrait HasChisel3 extends ScalaModule {
27*2905e463SZihao Yu  override def ivyDeps = Agg(
28*2905e463SZihao Yu    //ivy"edu.berkeley.cs::chisel3:3.1.+"
29*2905e463SZihao Yu    ivy"edu.berkeley.cs::chisel3:3.2-SNAPSHOT"
30*2905e463SZihao Yu )
31*2905e463SZihao Yu}
32*2905e463SZihao Yu
33*2905e463SZihao Yutrait HasChiselTests extends CrossSbtModule  {
34*2905e463SZihao Yu  object test extends Tests {
35*2905e463SZihao Yu    override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.4", ivy"edu.berkeley.cs::chisel-iotesters:1.2+")
36*2905e463SZihao Yu    def testFrameworks = Seq("org.scalatest.tools.Framework")
37*2905e463SZihao Yu  }
38*2905e463SZihao Yu}
39*2905e463SZihao Yu
40*2905e463SZihao Yutrait HasMacroParadise extends ScalaModule {
41*2905e463SZihao Yu  // Enable macro paradise for @chiselName et al
42*2905e463SZihao Yu  val macroPlugins = Agg(ivy"org.scalamacros:::paradise:2.1.0")
43*2905e463SZihao Yu  def scalacPluginIvyDeps = macroPlugins
44*2905e463SZihao Yu  def compileIvyDeps = macroPlugins
45*2905e463SZihao Yu}
46*2905e463SZihao Yu
47*2905e463SZihao Yuobject chiselModule extends CrossSbtModule with HasChisel3 with HasChiselTests with HasXsource211 with HasMacroParadise {
48*2905e463SZihao Yu  def zincWorker = CustomZincWorkerModule
49*2905e463SZihao Yu  def crossScalaVersion = "2.11.12"
50*2905e463SZihao Yu}
51*2905e463SZihao Yu
52