xref: /XiangShan/build.sc (revision dba2f661e6c418431c4adf6c7961e36a4455ee13)
12905e463SZihao Yuimport mill._, scalalib._
22905e463SZihao Yuimport coursier.maven.MavenRepository
32905e463SZihao Yu
42905e463SZihao Yuobject CustomZincWorkerModule extends ZincWorkerModule {
52905e463SZihao Yu  def repositories() = super.repositories ++ Seq(
62905e463SZihao Yu    MavenRepository("https://oss.sonatype.org/content/repositories/releases"),
72905e463SZihao Yu    MavenRepository("https://oss.sonatype.org/content/repositories/snapshots")
82905e463SZihao Yu  )
92905e463SZihao Yu}
102905e463SZihao Yu
112905e463SZihao Yu/**
122905e463SZihao Yu * Scala 2.12 module that is source-compatible with 2.11.
132905e463SZihao Yu * This is due to Chisel's use of structural types. See
142905e463SZihao Yu * https://github.com/freechipsproject/chisel3/issues/606
152905e463SZihao Yu */
162905e463SZihao Yutrait HasXsource211 extends ScalaModule {
172905e463SZihao Yu  override def scalacOptions = T {
182905e463SZihao Yu    super.scalacOptions() ++ Seq(
192905e463SZihao Yu      "-deprecation",
202905e463SZihao Yu      "-unchecked",
212905e463SZihao Yu      "-Xsource:2.11"
222905e463SZihao Yu    )
232905e463SZihao Yu  }
242905e463SZihao Yu}
252905e463SZihao Yu
262905e463SZihao Yutrait HasChisel3 extends ScalaModule {
272905e463SZihao Yu  override def ivyDeps = Agg(
28*dba2f661SLinJiawei    ivy"edu.berkeley.cs::chisel3:3.3.1"
292905e463SZihao Yu )
302905e463SZihao Yu}
312905e463SZihao Yu
322905e463SZihao Yutrait HasChiselTests extends CrossSbtModule  {
332905e463SZihao Yu  object test extends Tests {
346aea7ec5SLinJiawei    override def ivyDeps = Agg(
356aea7ec5SLinJiawei      ivy"org.scalatest::scalatest:3.0.4",
3698d97dd3SLinJiawei      ivy"edu.berkeley.cs::chisel-iotesters:1.2+"
376aea7ec5SLinJiawei    )
382905e463SZihao Yu    def testFrameworks = Seq("org.scalatest.tools.Framework")
392905e463SZihao Yu  }
402905e463SZihao Yu}
412905e463SZihao Yu
422905e463SZihao Yutrait HasMacroParadise extends ScalaModule {
432905e463SZihao Yu  // Enable macro paradise for @chiselName et al
442905e463SZihao Yu  val macroPlugins = Agg(ivy"org.scalamacros:::paradise:2.1.0")
452905e463SZihao Yu  def scalacPluginIvyDeps = macroPlugins
462905e463SZihao Yu  def compileIvyDeps = macroPlugins
472905e463SZihao Yu}
482905e463SZihao Yu
492905e463SZihao Yuobject chiselModule extends CrossSbtModule with HasChisel3 with HasChiselTests with HasXsource211 with HasMacroParadise {
502905e463SZihao Yu  def zincWorker = CustomZincWorkerModule
512905e463SZihao Yu  def crossScalaVersion = "2.11.12"
522905e463SZihao Yu}
532905e463SZihao Yu
54