aboutsummaryrefslogtreecommitdiff
path: root/stage2/mixins.scala
blob: 9d5fdb2a18cc2c75d054a8c640e976d91ac42cc3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package cbt
package mixins
import java.net.URL
import scala.collection.immutable.Seq
import java.io._
trait Test extends BaseBuild{
  lazy val testedBuild = BuildDependency( projectDirectory.parent )
  override def dependencies = Seq( testedBuild ) ++ super.dependencies
  override def defaultScalaVersion = testedBuild.build.scalaVersion
}
trait SbtTest extends Test{
  override def sources = Vector( projectDirectory.parent ++ "/src/test/scala" )
}

trait ScalaParadise extends BaseBuild{
  def scalaParadiseVersion = "2.1.0"

  private def scalaParadiseDependency =
    Resolver( mavenCentral ).bindOne(
      "org.scalamacros" % ("paradise_" ++ scalaVersion) % scalaParadiseVersion
    )

  override def dependencies = (
    super.dependencies // don't forget super.dependencies here
    ++ (
      if(scalaVersion.startsWith("2.10."))
        Seq(scalaParadiseDependency)
      else
        Seq()
    )
  )

  override def scalacOptions = (
    super.scalacOptions
    ++ (
      if(scalaVersion.startsWith("2.10."))
        Seq("-Xplugin:"++scalaParadiseDependency.exportedClasspath.string)
      else
        Seq()
    )
  )
}

trait Suggested extends BaseBuild{
  override def scalacOptions = super.scalacOptions ++ Seq(
    "-language:experimental.macros"
  )
}

trait Github extends Publish{
  def user: String
  def githubProject = name
  def githubUser = user
  final def githubUserProject = githubUser ++ "/" ++ githubProject
  override def url = new URL(s"http://github.com/$githubUserProject")
  override def scmUrl = s"git@github.com:$githubUserProject.git"
  override def scmConnection = s"scm:git:$scmUrl"
}