build.sc (c4e07b243740b30c2c0b854d4efb6450cd869328) | build.sc (917276a09738573bc3d1a582ab9956561bcd71ae) |
---|---|
1import os.Path | |
2import mill._ 3import mill.modules.Util 4import scalalib._ | 1import mill._ 2import mill.modules.Util 3import scalalib._ |
5import coursier.maven.MavenRepository | 4import $ivy.`com.lihaoyi::mill-contrib-buildinfo:$MILL_VERSION` 5import $ivy.`com.lihaoyi::mill-contrib-bsp:$MILL_VERSION` 6import mill.contrib.buildinfo.BuildInfo 7import $file.chisel3.build 8import $file.firrtl.build 9import $file.treadle.build 10import $file.chiseltest.build 11import $file.`berkeley-hardfloat`.build 12import $file.`rocket-chip`.common 13import $file.`api-config-chipsalliance`.`build-rules`.mill.build |
6 | 14 |
7object CustomZincWorkerModule extends ZincWorkerModule { 8 def repositories() = super.repositories ++ Seq( 9 MavenRepository("https://maven.aliyun.com/repository/public"), 10 MavenRepository("https://maven.aliyun.com/repository/apache-snapshots") 11 ) | 15val sv = "2.12.12" 16 17object myfirrtl extends firrtl.build.firrtlCrossModule(sv) { 18 override def millSourcePath = os.pwd / "firrtl" |
12} 13 | 19} 20 |
14trait CommonModule extends ScalaModule { 15 override def scalaVersion = "2.12.10" | 21object mychisel3 extends chisel3.build.chisel3CrossModule(sv) { 22 override def millSourcePath = os.pwd / "chisel3" |
16 | 23 |
17 override def scalacOptions = Seq("-Xsource:2.11") | 24 def firrtlModule: Option[PublishModule] = Some(myfirrtl) |
18 | 25 |
19 override def zincWorker = CustomZincWorkerModule | 26 def treadleModule: Option[PublishModule] = Some(mytreadle) 27} |
20 | 28 |
21 private val macroParadise = ivy"org.scalamacros:::paradise:2.1.0" | 29object mytreadle extends treadle.build.treadleCrossModule(sv) { 30 override def millSourcePath = os.pwd / "treadle" |
22 | 31 |
23 override def compileIvyDeps = Agg(macroParadise) | 32 def firrtlModule: Option[PublishModule] = Some(myfirrtl) 33} |
24 | 34 |
25 override def scalacPluginIvyDeps = Agg(macroParadise) | 35object mychiseltest extends chiseltest.build.chiseltestCrossModule(sv) { 36 override def scalaVersion = sv 37 override def millSourcePath = os.pwd / "chiseltest" 38 def chisel3Module: Option[PublishModule] = Some(mychisel3) 39 def treadleModule: Option[PublishModule] = Some(mytreadle) |
26} 27 | 40} 41 |
28val chisel = Agg( 29 ivy"edu.berkeley.cs::chisel3:3.4.0" 30) | 42object myhardfloat extends `berkeley-hardfloat`.build.hardfloat { 43 override def scalaVersion = sv |
31 | 44 |
32object `rocket-chip` extends SbtModule with CommonModule { | 45 def chisel3Module: Option[PublishModule] = Some(mychisel3) 46} |
33 | 47 |
34 override def ivyDeps = super.ivyDeps() ++ Agg( 35 ivy"${scalaOrganization()}:scala-reflect:${scalaVersion()}", 36 ivy"org.json4s::json4s-jackson:3.6.1" 37 ) ++ chisel | 48object myconfig extends `api-config-chipsalliance`.`build-rules`.mill.build.config with PublishModule { 49 override def scalaVersion = sv |
38 | 50 |
51 override def millSourcePath = os.pwd / "api-config-chipsalliance" / "design" / "craft" |
|
39 | 52 |
40 object `api-config-chipsalliance` extends CommonModule { 41 override def millSourcePath = super.millSourcePath / 'design / 'craft | 53 override def pomSettings = T { 54 myrocketchip.pomSettings() |
42 } 43 | 55 } 56 |
44 object macros extends SbtModule with CommonModule 45 46 object hardfloat extends SbtModule with CommonModule { 47 override def ivyDeps = super.ivyDeps() ++ chisel | 57 override def publishVersion = T { 58 myrocketchip.publishVersion() |
48 } | 59 } |
60} |
|
49 | 61 |
50 override def moduleDeps = super.moduleDeps ++ Seq( 51 `api-config-chipsalliance`, macros, hardfloat 52 ) | 62object myrocketchip extends `rocket-chip`.common.CommonRocketChip { 63 override def scalaVersion = sv |
53 | 64 |
65 override def millSourcePath = os.pwd / "rocket-chip" 66 67 def chisel3Module: Option[PublishModule] = Some(mychisel3) 68 69 def hardfloatModule: PublishModule = myhardfloat 70 71 def configModule: PublishModule = myconfig |
|
54} 55 | 72} 73 |
56object `block-inclusivecache-sifive` extends CommonModule { 57 override def ivyDeps = super.ivyDeps() ++ chisel | |
58 | 74 |
59 override def millSourcePath = super.millSourcePath / 'design / 'craft / 'inclusivecache | 75trait CommonModule extends ScalaModule { 76 override def scalaVersion = sv |
60 | 77 |
61 override def moduleDeps = super.moduleDeps ++ Seq(`rocket-chip`) | 78 override def scalacOptions = Seq("-Xsource:2.11") 79 80 override def moduleDeps: Seq[ScalaModule] = Seq(mychisel3) 81 82 private val macroParadise = ivy"org.scalamacros:::paradise:2.1.1" 83 84 override def compileIvyDeps = Agg(macroParadise) 85 86 override def scalacPluginIvyDeps = Agg(macroParadise) |
62} 63 | 87} 88 |
64object chiseltest extends CommonModule with SbtModule { 65 override def ivyDeps = super.ivyDeps() ++ Agg( 66 ivy"edu.berkeley.cs::treadle:1.3.0", 67 ivy"org.scalatest::scalatest:3.0.8", 68 ivy"com.lihaoyi::utest:0.7.4" 69 ) ++ chisel 70 object test extends Tests { 71 def ivyDeps = Agg(ivy"org.scalacheck::scalacheck:1.14.3") 72 def testFrameworks = Seq("org.scalatest.tools.Framework") 73 } | 89object myinclusivecache extends CommonModule { 90 override def millSourcePath = os.pwd / "block-inclusivecache-sifive" / "design" / "craft" / "inclusivecache" 91 92 override def moduleDeps = super.moduleDeps ++ Seq(myrocketchip) |
74} 75 | 93} 94 |
95object myblocks extends CommonModule with SbtModule { 96 override def moduleDeps = super.moduleDeps ++ Seq(myrocketchip) 97} |
|
76 77object XiangShan extends CommonModule with SbtModule { 78 override def millSourcePath = millOuterCtx.millSourcePath | 98 99object XiangShan extends CommonModule with SbtModule { 100 override def millSourcePath = millOuterCtx.millSourcePath |
79 | |
80 override def forkArgs = Seq("-Xmx10G") | 101 override def forkArgs = Seq("-Xmx10G") |
81 82 override def ivyDeps = super.ivyDeps() ++ chisel | |
83 override def moduleDeps = super.moduleDeps ++ Seq( | 102 override def moduleDeps = super.moduleDeps ++ Seq( |
84 `rocket-chip`, 85 `block-inclusivecache-sifive`, 86 chiseltest | 103 myrocketchip, 104 myinclusivecache, |
87 ) 88 89 object test extends Tests { | 105 ) 106 107 object test extends Tests { |
90 override def ivyDeps = super.ivyDeps() ++ Agg( 91 ivy"org.scalatest::scalatest:3.0.4", 92 ivy"edu.berkeley.cs::chisel-iotesters:1.2+", | 108 override def ivyDeps = Agg( 109 ivy"org.scalatest::scalatest:3.2.0", |
93 ) | 110 ) |
94 | 111 override def moduleDeps = super.moduleDeps ++ Seq( 112 mychiseltest 113 ) |
95 def testFrameworks = Seq( 96 "org.scalatest.tools.Framework" 97 ) | 114 def testFrameworks = Seq( 115 "org.scalatest.tools.Framework" 116 ) |
98 99 def testOnly(args: String*) = T.command { 100 super.runMain("org.scalatest.tools.Runner", args: _*) 101 } | |
102 } | 117 } |
103 | |
104} | 118} |
105 | |