aboutsummaryrefslogblamecommitdiff
path: root/stage2/mixins.scala
blob: 70e472f257ae16372434ec039c92fb1832b8f484 (plain) (tree)
1
2
3
4
5
6
7
8
9

              
                   

                                     
                              
                                                                   
                                                                      
                                                                   
 
                           
                                                                               
 




























                                                                              















                                                                     
package cbt
package mixins
import java.net.URL
import scala.collection.immutable.Seq
import java.io._
trait Test extends BasicBuild{
  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 BasicBuild{
  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 BasicBuild{
  override def scalacOptions = super.scalacOptions ++ Seq(
    "-language:experimental.macros"
  )
}

trait Github extends PublishBuild{
  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"
}