package flow import sbt._ import Keys._ object FlowBuild extends Build { val scalaVersions = List("2.11.8", "2.12.0") lazy val commonSettings: Seq[Setting[_]] = Seq( resolvers += Resolver.jcenterRepo, scalaVersion := scalaVersions.head, crossScalaVersions := scalaVersions.reverse, scalacOptions ++= Seq("-deprecation", "-unchecked", "-feature", "-target:jvm-1.8"), organization := "ch.jodersky", licenses := Seq(("BSD New", url("http://opensource.org/licenses/BSD-3-Clause"))), homepage := Some(url("https://jodersky.github.io/flow")), publishMavenStyle := true, publishTo := { val nexus = "https://oss.sonatype.org/" if (isSnapshot.value) Some("snapshots" at nexus + "content/repositories/snapshots") else Some("releases" at nexus + "service/local/staging/deploy/maven2") }, pomIncludeRepository := { _ => false }, pomExtra := { git@github.com:jodersky/flow.git scm:git:git@github.com:jodersky/flow.git jodersky Jakob Odersky } ) lazy val root = (project in file(".")). aggregate(core, native, stream) lazy val core = (project in file("flow-core")). settings(name:= "flow-core"). dependsOn(native % "test->runtime") lazy val native = (project in file("flow-native")). settings(name:= "flow-native") lazy val stream = (project in file("flow-stream")). settings(name:= "flow-stream"). dependsOn(core, core % "test->test", native % "test->runtime") lazy val samplesTerminal = (project in file("flow-samples") / "terminal"). dependsOn(core, native % Runtime) lazy val samplesTerminalStream = (project in file("flow-samples") / "terminal-stream"). dependsOn(stream, native % Runtime) lazy val samplesWatcher = (project in file("flow-samples") / "watcher"). dependsOn(core, native % Runtime) }