aboutsummaryrefslogblamecommitdiff
path: root/project/FlowBuild.scala
blob: 19042b623441ca5573998f69f025b1a7d19e4cf1 (plain) (tree)
1
2
3
4
5
6
7
8
9

            




                                
                                              
 
                                                 
                                      

                                                
                                                                                       
                                  
                                                                                     
                                                             







                                                                         













                                                                         
 
                                         
                                   
 
                                                 

                                       
 

                                                     
 
                                                     
                                   
                                                                  
 

                                                                            
 

                                                                                         
 

                                                                          
 
 
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 := {
      <scm>
        <url>git@github.com:jodersky/flow.git</url>
        <connection>scm:git:git@github.com:jodersky/flow.git</connection>
      </scm>
      <developers>
        <developer>
          <id>jodersky</id>
          <name>Jakob Odersky</name>
        </developer>
      </developers>
    }
  )

  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)

}