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