| // SPDX-FileCopyrightText: 2020 Muhammad Hadir Khan |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // SPDX-License-Identifier: Apache-2.0 |
| 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 := "Shaheen" |
| |
| version := "0.5.0" |
| |
| scalaVersion := "2.12.10" |
| |
| crossScalaVersions := Seq("2.12.10", "2.11.12") |
| |
| resolvers ++= Seq( |
| Resolver.sonatypeRepo("snapshots"), |
| Resolver.sonatypeRepo("releases") |
| ) |
| |
| addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full) |
| // Adding the submodule's src path so that it's classes can be used |
| unmanagedSourceDirectories in Compile += baseDirectory.value / "TileLink" / "src" |
| unmanagedSourceDirectories in Compile += baseDirectory.value / "Buraq-mini/RV32i" / "src" |
| |
| // Provide a managed dependency on X if -DXVersion="" is supplied on the command line. |
| val defaultVersions = Seq( |
| "chisel-iotesters" -> "1.4.1+", |
| "chiseltest" -> "0.2.1+" |
| ) |
| |
| libraryDependencies ++= defaultVersions.map { case (dep, ver) => |
| "edu.berkeley.cs" %% dep % sys.props.getOrElse(dep + "Version", ver) } |
| |
| scalacOptions ++= scalacOptionsVersion(scalaVersion.value) |
| |
| javacOptions ++= javacOptionsVersion(scalaVersion.value) |