xref: /XiangShan/build.sbt (revision 5e414fe2a1de082137d59bf53033b3792ed98e79)
1val chiselVersion = "3.4.3"
2scalaVersion := "2.12.10"
3
4lazy val commonSettings = Seq(
5  scalacOptions ++= Seq("-deprecation","-unchecked","-Xsource:2.11"),
6  libraryDependencies ++= Seq("org.scala-lang" % "scala-reflect" % scalaVersion.value),
7  libraryDependencies ++= Seq("org.json4s" %% "json4s-jackson" % "3.6.1"),
8  libraryDependencies ++= Seq("org.scalatest" %% "scalatest" % "3.2.0" % "test"),
9  addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full),
10  resolvers ++= Seq(
11    Resolver.sonatypeRepo("snapshots"),
12    Resolver.sonatypeRepo("releases"),
13    Resolver.mavenLocal
14  )
15)
16
17lazy val chiselSettings = Seq(
18  libraryDependencies ++= Seq("edu.berkeley.cs" %% "chisel3" % chiselVersion),
19  addCompilerPlugin("edu.berkeley.cs" % "chisel3-plugin" % chiselVersion cross CrossVersion.full)
20)
21
22lazy val `api-config-chipsalliance` = (project in file("api-config-chipsalliance/build-rules/sbt"))
23  .settings(commonSettings)
24
25lazy val hardfloat = (project in file("berkeley-hardfloat"))
26  .settings(commonSettings, chiselSettings)
27
28lazy val rocketMacros = (project in file("rocket-chip/macros"))
29  .settings(commonSettings)
30
31lazy val `rocket-chip` = (Project("rocket-chip", file("rocket-chip/src")))
32  .settings(commonSettings, chiselSettings)
33  .settings(
34    scalaSource in Compile := baseDirectory.value / "main" / "scala",
35    resourceDirectory in Compile := baseDirectory.value / "main" / "resources"
36  )
37  .dependsOn(rocketMacros)
38  .dependsOn(`api-config-chipsalliance`)
39  .dependsOn(hardfloat)
40
41lazy val `block-inclusive-cache` = (project in file("block-inclusivecache-sifive"))
42  .settings(commonSettings, chiselSettings)
43  .settings(
44    scalaSource in Compile := baseDirectory.value / "design" / "craft" / "inclusivecache",
45  )
46  .dependsOn(`rocket-chip`)
47
48lazy val chiseltest = (project in file("chiseltest"))
49  .settings(commonSettings, chiselSettings)
50
51lazy val xiangshan = (Project("XiangShan", base = file(".")))
52  .settings(commonSettings, chiselSettings)
53  .dependsOn(`rocket-chip`, `block-inclusive-cache`, chiseltest)