@@ -4,15 +4,15 @@ import scalafmt._
4
4
import os .Path
5
5
import publish ._
6
6
import $file .`rocket-chip` .common
7
+ import $file .`rocket-chip` .common
7
8
import $file .`rocket-chip` .cde .common
8
9
import $file .`rocket-chip` .hardfloat .build
9
10
10
11
val defaultVersions = Map (
11
- " chisel3" -> " 3.5.4" ,
12
- " chisel3-plugin" -> " 3.5.4" ,
13
- " chiseltest" -> " 0.3.2" ,
14
- " scala" -> " 2.12.13" ,
15
- " scalatest" -> " 3.2.7"
12
+ " chisel3" -> " 3.6.0" ,
13
+ " chisel3-plugin" -> " 3.6.0" ,
14
+ " chiseltest" -> " 0.6.2" ,
15
+ " scala" -> " 2.13.10" ,
16
16
)
17
17
18
18
def getVersion (dep : String , org : String = " edu.berkeley.cs" , cross : Boolean = false ) = {
@@ -23,98 +23,91 @@ def getVersion(dep: String, org: String = "edu.berkeley.cs", cross: Boolean = fa
23
23
ivy " $org:: $dep: $version"
24
24
}
25
25
26
- trait CommonModule extends ScalaModule {
27
- override def scalaVersion = defaultVersions( " scala " )
26
+ trait HasChisel extends ScalaModule {
27
+ def chiselModule : Option [ ScalaModule ] = None
28
28
29
- override def scalacOptions = Seq ( " -Xsource:2.11 " )
29
+ def chiselPluginJar : T [ Option [ PathRef ]] = None
30
30
31
- val macroParadise = ivy " org.scalamacros:::paradise:2.1.1 "
32
- val chisel3Plugin = ivy " edu.berkeley.cs:::chisel3-plugin:3.5.4 "
31
+ def chiselIvy : Option [Dep ] = Some (getVersion(" chisel3" ))
33
32
34
- override def compileIvyDeps = Agg (macroParadise)
35
- override def scalacPluginIvyDeps = Agg (macroParadise, chisel3Plugin)
33
+ def chiselPluginIvy : Option [Dep ] = Some (getVersion(" chisel3-plugin" , cross= true ))
36
34
37
- }
35
+ override def scalaVersion = defaultVersions( " scala " )
38
36
39
- object rocketchip extends `rocket-chip` .common.CommonRocketChip {
37
+ override def scalacOptions = super .scalacOptions() ++
38
+ Agg (" -language:reflectiveCalls" , " -Ymacro-annotations" , " -Ytasty-reader" )
40
39
41
- val rcPath = os.pwd / " rocket-chip "
40
+ override def ivyDeps = super .ivyDeps() ++ Agg (chiselIvy.get)
42
41
43
- override def scalaVersion = defaultVersions(" scala" )
42
+ override def scalacPluginIvyDeps = super .scalacPluginIvyDeps() ++ Agg (chiselPluginIvy.get)
43
+ }
44
44
45
- override def scalacOptions = Seq ( " -Xsource:2.11 " )
45
+ object rocketchip extends `rocket-chip` .common. RocketChipModule with HasChisel {
46
46
47
+ val rcPath = os.pwd / " rocket-chip"
47
48
override def millSourcePath = rcPath
48
49
49
- object cdeRocket extends `rocket-chip` .cde.common.CDEModule with PublishModule {
50
- override def millSourcePath = rcPath / " cde" / " cde"
51
-
52
- override def scalaVersion = T {
53
- rocketchip.scalaVersion()
54
- }
50
+ def mainargsIvy = ivy " com.lihaoyi::mainargs:0.5.0 "
55
51
56
- override def pomSettings = T {
57
- rocketchip.pomSettings()
58
- }
52
+ def json4sJacksonIvy = ivy " org.json4s::json4s-jackson:4.0.5 "
59
53
60
- override def publishVersion = T {
61
- rocketchip.publishVersion()
62
- }
54
+ object macros extends `rocket-chip` .common.MacrosModule with HasChisel {
55
+ def scalaReflectIvy = ivy " org.scala-lang:scala-reflect: ${scalaVersion}"
63
56
}
64
57
65
- object hardfloatRocket extends `rocket-chip` .hardfloat.build.hardfloat {
66
- override def millSourcePath = rcPath / " hardfloat"
67
-
68
- override def scalaVersion = T {
69
- rocketchip.scalaVersion()
70
- }
71
-
72
- def chisel3IvyDeps = if (chisel3Module.isEmpty) Agg (
73
- `rocket-chip`.common.getVersion(" chisel3" )
74
- ) else Agg .empty[Dep ]
75
-
76
- def chisel3PluginIvyDeps = Agg (`rocket-chip`.common.getVersion(" chisel3-plugin" , cross= true ))
58
+ object cde extends `rocket-chip` .cde.common.CDEModule with HasChisel {
59
+ override def millSourcePath = rcPath / " cde" / " cde"
77
60
}
78
61
79
- def hardfloatModule = hardfloatRocket
62
+ object hardfloat extends `rocket-chip` .hardfloat.common.HardfloatModule with HasChisel {
63
+ override def millSourcePath = rcPath / " hardfloat" / " hardfloat"
64
+ }
80
65
81
- def cdeModule = cdeRocket
66
+ def macrosModule = macros
82
67
83
- }
68
+ def hardfloatModule = hardfloat
84
69
85
- object utility extends SbtModule with ScalafmtModule with CommonModule {
70
+ def cdeModule = cde
86
71
87
- override def ivyDeps = Agg (`rocket-chip`.common.getVersion( " chisel3 " ))
72
+ }
88
73
89
- override def millSourcePath = os.pwd / " utility"
74
+ object utility extends SbtModule with HasChisel {
75
+ override def millSourcePath = os.pwd / " utility"
90
76
91
- override def moduleDeps = super .moduleDeps ++ Seq (rocketchip)
77
+ override def moduleDeps = super .moduleDeps ++ Seq (rocketchip)
92
78
}
93
79
94
- object huancun extends SbtModule with ScalafmtModule with CommonModule {
80
+ object huancun extends SbtModule with HasChisel {
95
81
override def millSourcePath = os.pwd / " HuanCun"
96
82
override def moduleDeps = super .moduleDeps ++ Seq (
97
83
rocketchip, utility
98
84
)
99
85
}
100
86
101
- object CoupledL2 extends SbtModule with ScalafmtModule with CommonModule {
87
+ trait CoupledL2Module extends ScalaModule {
88
+
89
+ def rocketModule : ScalaModule
90
+
91
+ def utilityModule : ScalaModule
92
+
93
+ def huancunModule : ScalaModule
94
+
95
+ override def moduleDeps = super .moduleDeps ++ Seq (rocketModule, utilityModule, huancunModule)
96
+ }
97
+
98
+ object CoupledL2 extends SbtModule with HasChisel with CoupledL2Module {
102
99
103
100
override def millSourcePath = millOuterCtx.millSourcePath
104
101
102
+ def rocketModule : ScalaModule = rocketchip
105
103
106
- override def ivyDeps = super .ivyDeps() ++ Agg (
107
- getVersion(" chisel3" ),
108
- getVersion(" chiseltest" ),
109
- )
104
+ def utilityModule : ScalaModule = utility
110
105
111
- override def moduleDeps = super .moduleDeps ++ Seq (rocketchip, utility, huancun)
106
+ def huancunModule : ScalaModule = huancun
112
107
113
- object test extends Tests {
108
+ object test extends SbtModuleTests with TestModule . ScalaTest {
114
109
override def ivyDeps = super .ivyDeps() ++ Agg (
115
- getVersion(" scalatest " , " org.scalatest " )
110
+ getVersion(" chiseltest " ),
116
111
)
117
-
118
- def testFramework = " org.scalatest.tools.Framework"
119
112
}
120
113
}
0 commit comments