aboutsummaryrefslogtreecommitdiff
path: root/stage2
diff options
context:
space:
mode:
Diffstat (limited to 'stage2')
-rw-r--r--stage2/BasicBuild.scala7
-rw-r--r--stage2/BuildBuild.scala2
-rw-r--r--stage2/Lib.scala6
-rw-r--r--stage2/PackageJars.scala (renamed from stage2/PackageBuild.scala)3
-rw-r--r--stage2/Publish.scala (renamed from stage2/PublishBuild.scala)4
-rw-r--r--stage2/SbtDependencyDsl.scala2
-rw-r--r--stage2/Scaffold.scala14
-rw-r--r--stage2/mixins.scala8
8 files changed, 25 insertions, 21 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala
index 978f604..49a73ef 100644
--- a/stage2/BasicBuild.scala
+++ b/stage2/BasicBuild.scala
@@ -10,7 +10,7 @@ import java.util.jar._
import scala.collection.immutable.Seq
import scala.util._
-trait Recommended extends BasicBuild{
+trait Recommended extends BaseBuild{
override def scalacOptions = super.scalacOptions ++ Seq(
"-feature",
"-deprecation",
@@ -21,7 +21,10 @@ trait Recommended extends BasicBuild{
"-language:existentials"
)
}
-class BasicBuild(val context: Context) extends DependencyImplementation with BuildInterface with TriggerLoop with SbtDependencyDsl{
+class BasicBuild(val context: Context) extends BaseBuild
+trait BaseBuild extends DependencyImplementation with BuildInterface with TriggerLoop with SbtDependencyDsl{
+ def context: Context
+
// library available to builds
implicit protected final val logger: Logger = context.logger
implicit protected final val classLoaderCache: ClassLoaderCache = context.classLoaderCache
diff --git a/stage2/BuildBuild.scala b/stage2/BuildBuild.scala
index bab8d88..c6d45d3 100644
--- a/stage2/BuildBuild.scala
+++ b/stage2/BuildBuild.scala
@@ -3,7 +3,7 @@ import java.io.File
import java.nio.file._
import scala.collection.immutable.Seq
-class BuildBuild(context: Context) extends BasicBuild(context){
+trait BuildBuild extends BaseBuild{
override def dependencies =
super.dependencies :+ context.cbtDependency
def managedBuildDirectory: File = lib.realpath( projectDirectory.parent )
diff --git a/stage2/Lib.scala b/stage2/Lib.scala
index 2a108ab..cec302a 100644
--- a/stage2/Lib.scala
+++ b/stage2/Lib.scala
@@ -49,7 +49,7 @@ final class Lib(logger: Logger) extends Stage1Lib(logger) with Scaffold{
val rootBuildClassName = if( useBasicBuildBuild ) buildBuildClassName else buildClassName
try{
- if(useBasicBuildBuild) default( context ) else new cbt.BuildBuild( context.copy( projectDirectory = start ) )
+ if(useBasicBuildBuild) default( context ) else new cbt.BasicBuild( context.copy( projectDirectory = start ) ) with BuildBuild
} catch {
case e:ClassNotFoundException if e.getMessage == rootBuildClassName =>
throw new Exception(s"no class $rootBuildClassName found in " ++ start.string)
@@ -153,8 +153,8 @@ final class Lib(logger: Logger) extends Stage1Lib(logger) with Scaffold{
def usage(buildClass: Class[_], show: String): String = {
val baseTasks = Seq(
classOf[BasicBuild],
- classOf[PackageBuild],
- classOf[PublishBuild],
+ classOf[PackageJars],
+ classOf[Publish],
classOf[Recommended]
).flatMap(lib.taskNames).distinct.sorted
val thisTasks = lib.taskNames(buildClass) diff baseTasks
diff --git a/stage2/PackageBuild.scala b/stage2/PackageJars.scala
index 583809c..8e3f424 100644
--- a/stage2/PackageBuild.scala
+++ b/stage2/PackageJars.scala
@@ -1,7 +1,8 @@
package cbt
import java.io.File
import scala.collection.immutable.Seq
-abstract class PackageBuild(context: Context) extends BasicBuild(context) with ArtifactInfo{
+// would love to call this just `Package` but that conflicts with scala package objects.
+trait PackageJars extends BaseBuild with ArtifactInfo{
def name: String
def artifactId = name
def defaultVersion: String
diff --git a/stage2/PublishBuild.scala b/stage2/Publish.scala
index d744a08..2f7d2fe 100644
--- a/stage2/PublishBuild.scala
+++ b/stage2/Publish.scala
@@ -4,7 +4,7 @@ import java.net.URL
import java.nio.file.Files.readAllBytes
import scala.collection.immutable.Seq
-abstract class PublishBuild(context: Context) extends PackageBuild(context){
+trait Publish extends PackageJars{
def description: String
def url: URL
def developers: Seq[Developer]
@@ -40,7 +40,7 @@ abstract class PublishBuild(context: Context) extends PackageBuild(context){
private def snapshotUrl = new URL("https://oss.sonatype.org/content/repositories/snapshots")
private def releaseUrl = new URL("https://oss.sonatype.org/service/local/staging/deploy/maven2")
def publishUrl = if(version.endsWith("-SNAPSHOT")) snapshotUrl else releaseUrl
- override def copy(context: Context) = super.copy(context).asInstanceOf[PublishBuild]
+ override def copy(context: Context) = super.copy(context).asInstanceOf[Publish]
protected def sonatypeCredentials = {
// FIXME: this should probably not use cbtHome, but some reference to the system's host cbt
diff --git a/stage2/SbtDependencyDsl.scala b/stage2/SbtDependencyDsl.scala
index 4c95308..05cb709 100644
--- a/stage2/SbtDependencyDsl.scala
+++ b/stage2/SbtDependencyDsl.scala
@@ -1,5 +1,5 @@
package cbt
-trait SbtDependencyDsl{ self: BasicBuild =>
+trait SbtDependencyDsl{ self: BaseBuild =>
/** SBT-like dependency builder DSL for syntax compatibility */
class DependencyBuilder2( groupId: String, artifactId: String, scalaVersion: Option[String] ){
def %(version: String) = scalaVersion.map(
diff --git a/stage2/Scaffold.scala b/stage2/Scaffold.scala
index 78242fc..2c46d0a 100644
--- a/stage2/Scaffold.scala
+++ b/stage2/Scaffold.scala
@@ -32,7 +32,7 @@ import java.net.URL
import java.io.File
import scala.collection.immutable.Seq
-class Build( context: Context ) extends BasicBuild( context ){
+class Build(val context: Context) extends BaseBuild{
/*
override def dependencies = (
super.dependencies // don't forget super.dependencies here
@@ -65,7 +65,7 @@ import java.net.URL
import java.io.File
import scala.collection.immutable.Seq
-class Build( context: Context ) extends BuildBuild( context ){
+class Build(val context: Context) extends BuildBuild{
/*
override def dependencies = (
super.dependencies // don't forget super.dependencies here
@@ -97,7 +97,7 @@ import java.net.URL
import java.io.File
import scala.collection.immutable.Seq
-class Build(context: Context) extends BuildBuild(context){
+class Build(val context: Context) extends BuildBuild{
override def dependencies = super.dependencies ++ Seq(
BuildDependency( projectDirectory.parent ++ "/build-shared")
// , "com.lihaoyi" %% "ammonite-ops" % "0.5.5"
@@ -117,7 +117,7 @@ import java.net.URL
import java.io.File
import scala.collection.immutable.Seq
-class Build(context: cbt.Context) extends BasicBuild(context) with BuildShared/* with cbt.mixins.ScalaTest*/{
+class Build(val context: Context) extends BaseBuild with BuildShared/* with mixins.ScalaTest*/{
// def scalaTestVersion = "2.2.6"
override def dependencies = super.dependencies ++ Seq(
@@ -131,7 +131,7 @@ import java.net.URL
import java.io.File
import scala.collection.immutable.Seq
-class Build(context: Context) extends BuildBuild(context){
+class Build(val context: Context) extends BuildBuild{
override def scalaVersion: String = "2.11.8"
override def dependencies = super.dependencies ++ Seq(
@@ -146,7 +146,7 @@ import java.net.URL
import java.io.File
import scala.collection.immutable.Seq
-class Build(context: Context) extends BasicBuild(context){
+class Build(val context: Context) extends BaseBuild{
override def scalaVersion: String = "$scalaVersion"
override def dependencies = super.dependencies ++ Seq( // don't forget super.dependencies here
@@ -161,7 +161,7 @@ import java.net.URL
import java.io.File
import scala.collection.immutable.Seq
-trait BuildShared extends BasicBuild{
+trait BuildShared extends BaseBuild{
override def scalaVersion: String = "$scalaVersion"
override def enableConcurrency = false // enable for speed, disable for debugging
diff --git a/stage2/mixins.scala b/stage2/mixins.scala
index 70e472f..9d5fdb2 100644
--- a/stage2/mixins.scala
+++ b/stage2/mixins.scala
@@ -3,7 +3,7 @@ package mixins
import java.net.URL
import scala.collection.immutable.Seq
import java.io._
-trait Test extends BasicBuild{
+trait Test extends BaseBuild{
lazy val testedBuild = BuildDependency( projectDirectory.parent )
override def dependencies = Seq( testedBuild ) ++ super.dependencies
override def defaultScalaVersion = testedBuild.build.scalaVersion
@@ -12,7 +12,7 @@ trait SbtTest extends Test{
override def sources = Vector( projectDirectory.parent ++ "/src/test/scala" )
}
-trait ScalaParadise extends BasicBuild{
+trait ScalaParadise extends BaseBuild{
def scalaParadiseVersion = "2.1.0"
private def scalaParadiseDependency =
@@ -41,13 +41,13 @@ trait ScalaParadise extends BasicBuild{
)
}
-trait Suggested extends BasicBuild{
+trait Suggested extends BaseBuild{
override def scalacOptions = super.scalacOptions ++ Seq(
"-language:experimental.macros"
)
}
-trait Github extends PublishBuild{
+trait Github extends Publish{
def user: String
def githubProject = name
def githubUser = user