def scalacOptionsVersion(scalaVersion: String): Seq[String] = { Seq() ++ { // If we're building with Scala > 2.11, enable the compile option // switch to support our anonymous Bundle definitions: // https://github.com/scala/bug/issues/10047 CrossVersion.partialVersion(scalaVersion) match { case Some((2, scalaMajor: Long)) if scalaMajor < 12 => Seq() case _ => Seq("-Xsource:2.11") } } } def javacOptionsVersion(scalaVersion: String): Seq[String] = { Seq() ++ { // Scala 2.12 requires Java 8. We continue to generate // Java 7 compatible code for Scala 2.11 // for compatibility with old clients. CrossVersion.partialVersion(scalaVersion) match { case Some((2, scalaMajor: Long)) if scalaMajor < 12 => Seq("-source", "1.7", "-target", "1.7") case _ => Seq("-source", "1.8", "-target", "1.8") } } } name := "FiveStage" version := "2.0.0" scalaVersion := "2.12.8" crossScalaVersions := Seq("2.11.12", "2.12.4") resolvers ++= Seq( Resolver.sonatypeRepo("snapshots"), Resolver.sonatypeRepo("releases") ) // Provide a managed dependency on X if -DXVersion="" is supplied on the command line. val defaultVersions = Map( "chisel3" -> "3.1.+", "chisel-iotesters" -> "1.2.+" ) libraryDependencies ++= (Seq("chisel3","chisel-iotesters").map { dep: String => "edu.berkeley.cs" %% dep % sys.props.getOrElse(dep + "Version", defaultVersions(dep)) }) val fs2Version = "0.10.3" val catsVersion = "1.1.0" val catsEffectVersion = "0.10" libraryDependencies ++= Dependencies.backendDeps.value scalacOptions ++= scalacOptionsVersion(scalaVersion.value) scalacOptions ++= Seq("-language:reflectiveCalls") scalacOptions ++= Seq("-Ypartial-unification") javacOptions ++= javacOptionsVersion(scalaVersion.value) // testOptions in Test += Tests.Argument("-oF") resolvers += Resolver.sonatypeRepo("releases") addCompilerPlugin("org.spire-math" %% "kind-projector" % "0.9.7") addCompilerPlugin("com.olegpy" %% "better-monadic-for" % "0.2.4") addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.1" cross CrossVersion.full) testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-eS") addCompilerPlugin("io.tryp" % "splain" % "0.4.1" cross CrossVersion.patch)