// See LICENSE for license details.
site.settings
site.includeScaladoc()
ghpages.settings
lazy val commonSettings = Seq (
organization := "edu.berkeley.cs",
version := "3.0",
git.remoteRepo := "git@github.com:ucb-bar/chisel3.git",
scalaVersion := "2.11.7"
)
lazy val chiselSettings = Seq (
name := "Chisel3",
publishMavenStyle := true,
publishArtifact in Test := false,
pomIncludeRepository := { x => false },
pomExtra := http://chisel.eecs.berkeley.edu/
BSD-style
http://www.opensource.org/licenses/bsd-license.php
repo
https://github.com/ucb-bar/chisel3.git
scm:git:github.com/ucb-bar/chisel3.git
jackbackrack
Jonathan Bachrach
http://www.eecs.berkeley.edu/~jrb/
,
publishTo <<= version { v: String =>
val nexus = "https://oss.sonatype.org/"
if (v.trim.endsWith("SNAPSHOT")) {
Some("snapshots" at nexus + "content/repositories/snapshots")
}
else {
Some("releases" at nexus + "service/local/staging/deploy/maven2")
}
},
resolvers ++= Seq(
"Sonatype Snapshots" at "http://oss.sonatype.org/content/repositories/snapshots",
"Sonatype Releases" at "http://oss.sonatype.org/content/repositories/releases"
),
/* Bumping "com.novocode" % "junit-interface" % "0.11", causes DelayTest testSeqReadBundle to fail
* in subtly disturbing ways on Linux (but not on Mac):
* - some fields in the generated .h file are re-named,
* - an additional field is added
* - the generated .cpp file has additional differences:
* - different temps in clock_lo
* - missing assignments
* - change of assignment order
* - use of "Tx" vs. "Tx.values"
*/
libraryDependencies += "org.scalatest" %% "scalatest" % "2.2.5" % "test",
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value,
libraryDependencies += "org.scalacheck" %% "scalacheck" % "1.12.4" % "test",
// Tests from other projects may still run concurrently.
parallelExecution in Test := true,
javacOptions ++= Seq("-target", "1.7")
// Hopefully we get these options back in Chisel3
// scalacOptions in (Compile, doc) <++= (baseDirectory in LocalProject("chisel"), version) map { (bd, v) =>
// Seq("-diagrams", "-diagrams-max-classes", "25", "-sourcepath", bd.getAbsolutePath, "-doc-source-url",
// "https://github.com/ucb-bar/chisel/tree/master/€{FILE_PATH}.scala")
// }
)
lazy val coreMacros = (project in file("coreMacros")).
settings(commonSettings: _*).
settings(
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value
)
lazy val chiselFrontend = (project in file("chiselFrontend")).
settings(commonSettings: _*).
settings(
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value
).
dependsOn(coreMacros)
lazy val chisel = (project in file(".")).
settings(commonSettings: _*).
settings(chiselSettings: _*).
dependsOn(coreMacros).
dependsOn(chiselFrontend).
settings(
// Include macro classes, resources, and sources main jar.
mappings in (Compile, packageBin) <++= mappings in (coreMacros, Compile, packageBin),
mappings in (Compile, packageSrc) <++= mappings in (coreMacros, Compile, packageSrc),
mappings in (Compile, packageBin) <++= mappings in (chiselFrontend, Compile, packageBin),
mappings in (Compile, packageSrc) <++= mappings in (chiselFrontend, Compile, packageSrc)
)
// This is ugly. There must be a better way.
publish <<= (publish) dependsOn (publish in coreMacros, publish in chiselFrontend)
publishLocal <<= (publishLocal) dependsOn (publishLocal in coreMacros, publishLocal in chiselFrontend)