82 lines
2.6 KiB
Python
82 lines
2.6 KiB
Python
|
|
import mill._
|
|
import mill.scalalib._
|
|
import mill.scalalib.publish._
|
|
|
|
import scalafmt._
|
|
|
|
import $ivy.`com.goyeau::mill-scalafix::0.3.2`
|
|
import com.goyeau.mill.scalafix.ScalafixModule
|
|
import $ivy.`de.tototec::de.tobiasroeser.mill.vcs.version_mill0.11:0.4.0`
|
|
import de.tobiasroeser.mill.vcs.version.VcsVersion
|
|
|
|
import $file.dependencies.cde.common
|
|
import $file.dependencies.chisel.build
|
|
import $file.common
|
|
|
|
object v {
|
|
val scala = "2.13.16"
|
|
val chiselCrossVersions = Map(
|
|
"6.7.0" -> (ivy"org.chipsalliance::chisel:6.7.0", ivy"org.chipsalliance:::chisel-plugin:6.7.0"),
|
|
// build from project from source
|
|
"source" -> (ivy"org.chipsalliance::chisel:99", ivy"org.chipsalliance:::chisel-plugin:99"),
|
|
)
|
|
val sourcecode = ivy"com.lihaoyi::sourcecode:0.3.1"
|
|
}
|
|
|
|
object cde extends CDE
|
|
|
|
trait CDE extends millbuild.dependencies.cde.common.CDEModule with DiplomacyPublishModule with ScalaModule {
|
|
def scalaVersion: T[String] = T(v.scala)
|
|
|
|
override def millSourcePath = os.pwd / "dependencies" / "cde" / "cde"
|
|
}
|
|
|
|
// Build form source only for dev
|
|
object chisel extends Chisel
|
|
|
|
trait Chisel
|
|
extends millbuild.dependencies.chisel.build.Chisel {
|
|
def crossValue = v.scala
|
|
override def millSourcePath = os.pwd / "dependencies" / "chisel"
|
|
def scalaVersion = T(v.scala)
|
|
}
|
|
|
|
|
|
object diplomacy extends Cross[Diplomacy](v.chiselCrossVersions.keys.toSeq)
|
|
|
|
trait Diplomacy
|
|
extends millbuild.common.DiplomacyModule
|
|
with DiplomacyPublishModule
|
|
with ScalafmtModule
|
|
with ScalafixModule
|
|
with Cross.Module[String] {
|
|
|
|
def scalaVersion: T[String] = T(v.scala)
|
|
|
|
def millSourcePath = os.pwd / "diplomacy"
|
|
|
|
def chiselModule = Option.when(crossValue == "source")(chisel)
|
|
def chiselPluginJar = T(Option.when(crossValue == "source")(chisel.pluginModule.jar()))
|
|
def chiselIvy = Option.when(crossValue != "source")(v.chiselCrossVersions(crossValue)._1)
|
|
def chiselPluginIvy = Option.when(crossValue != "source")(v.chiselCrossVersions(crossValue)._2)
|
|
def cdeModule = cde
|
|
def sourcecodeIvy = v.sourcecode
|
|
}
|
|
|
|
trait DiplomacyPublishModule extends PublishModule {
|
|
def publishVersion = de.tobiasroeser.mill.vcs.version.VcsVersion.vcsState().format()
|
|
def pomSettings = PomSettings(
|
|
description = artifactName(),
|
|
organization = "org.chipsalliance",
|
|
url = "https://www.github.com/chipsalliance/diplomacy",
|
|
licenses = Seq(License.`Apache-2.0`),
|
|
versionControl = VersionControl.github("chipsalliance", "diplomacy"),
|
|
developers = Seq(
|
|
Developer("terpstra", "Wesley W. Terpstra", "https://github.com/terpstra"),
|
|
Developer("hcook", "Henry Cook", "https://github.com/hcook"),
|
|
Developer("sequencer", "Jiuyang Liu", "https://github.com/sequencer")
|
|
)
|
|
)
|
|
}
|