40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import mill._
|
|
import mill.scalalib._
|
|
|
|
trait HasChisel extends ScalaModule {
|
|
// Define these for building chisel from source
|
|
def chiselModule: Option[ScalaModule]
|
|
override def moduleDeps = super.moduleDeps ++ chiselModule
|
|
|
|
def chiselPluginJar: T[Option[PathRef]]
|
|
override def scalacOptions = T(
|
|
(super.scalacOptions() ++ chiselPluginJar().map(path => s"-Xplugin:${path.path}")) ++ Seq("-deprecation", "-feature")
|
|
)
|
|
override def scalacPluginClasspath: T[Agg[PathRef]] = T(super.scalacPluginClasspath() ++ chiselPluginJar())
|
|
|
|
// Define these for using chisel from ivy
|
|
def chiselIvy: Option[Dep]
|
|
override def ivyDeps = T(super.ivyDeps() ++ chiselIvy)
|
|
|
|
def chiselPluginIvy: Option[Dep]
|
|
override def scalacPluginIvyDeps: T[Agg[Dep]] = T(
|
|
super.scalacPluginIvyDeps() ++ chiselPluginIvy.map(Agg(_)).getOrElse(Agg.empty[Dep])
|
|
)
|
|
}
|
|
|
|
trait DiplomacyModule extends HasChisel {
|
|
|
|
def cdeModule: ScalaModule
|
|
|
|
override def moduleDeps = super.moduleDeps ++ Some(cdeModule)
|
|
|
|
def sourcecodeIvy: Dep
|
|
|
|
override def ivyDeps = T(super.ivyDeps() ++ Some(sourcecodeIvy))
|
|
|
|
override def scalacOptions = T(
|
|
super.scalacOptions() ++ Seq("-Wunused")
|
|
)
|
|
|
|
}
|