59 lines
1.5 KiB
Python
59 lines
1.5 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}"))
|
|
|
|
override def scalacPluginClasspath: T[Agg[PathRef]] = T(super.scalacPluginClasspath() ++ chiselPluginJar())
|
|
|
|
// Define these for building 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 HardfloatModule
|
|
extends HasChisel
|
|
|
|
trait HardfloatTestModule
|
|
extends TestModule
|
|
with HasChisel
|
|
with TestModule.ScalaTest {
|
|
|
|
def hardfloatModule: HardfloatModule
|
|
|
|
def chiselModule = hardfloatModule.chiselModule
|
|
|
|
def chiselPluginJar: T[Option[PathRef]] = T(hardfloatModule.chiselPluginJar())
|
|
|
|
def chiselIvy: Option[Dep] = hardfloatModule.chiselIvy
|
|
|
|
def chiselPluginIvy: Option[Dep] = hardfloatModule.chiselPluginIvy
|
|
|
|
def scalatestIvy: Dep
|
|
|
|
def scalaparIvy: Dep
|
|
|
|
override def moduleDeps = super.moduleDeps ++ Some(hardfloatModule)
|
|
|
|
override def defaultCommandName() = "test"
|
|
|
|
override def ivyDeps = T(
|
|
super.ivyDeps() ++ Agg(
|
|
scalatestIvy,
|
|
scalaparIvy
|
|
)
|
|
)
|
|
} |