aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/build-scalatest/build/build.scala17
-rw-r--r--examples/build-scalatest/build/build/build.scala9
-rw-r--r--examples/build-scalatest/src/main/scala/Hello.scala2
-rw-r--r--examples/build-scalatest/src/test/scala/Test.scala7
-rw-r--r--plugins/sbt_layout/SbtLayout.scala10
-rw-r--r--plugins/sbt_layout/build/build.scala2
-rw-r--r--plugins/scalajs/build/build.scala8
-rw-r--r--plugins/scalatest/ScalaTest.scala27
-rw-r--r--plugins/scalatest/build/build.scala5
-rw-r--r--stage2/BuildBuild.scala17
-rw-r--r--stage2/Plugin.scala4
11 files changed, 48 insertions, 60 deletions
diff --git a/examples/build-scalatest/build/build.scala b/examples/build-scalatest/build/build.scala
index 29d7bf4..48248fd 100644
--- a/examples/build-scalatest/build/build.scala
+++ b/examples/build-scalatest/build/build.scala
@@ -1,10 +1,9 @@
import cbt._
-class Build(val context: Context) extends SbtLayout {
-
- override def dependencies = (
- super.dependencies ++
- Resolver( mavenCentral ).bind(
- ScalaDependency("org.scalatest","scalatest","2.2.4")
- )
- )
-} \ No newline at end of file
+class Build(val context: Context) extends SbtLayoutMain {
+ outer =>
+ override def test: Option[ExitCode] = Some{
+ new BasicBuild(context) with ScalaTest with SbtLayoutTest{
+ override def dependencies = outer +: super.dependencies
+ }.run
+ }
+}
diff --git a/examples/build-scalatest/build/build/build.scala b/examples/build-scalatest/build/build/build.scala
index 2aece46..d641b51 100644
--- a/examples/build-scalatest/build/build/build.scala
+++ b/examples/build-scalatest/build/build/build.scala
@@ -1,11 +1,8 @@
import cbt._
class Build(val context: Context) extends BuildBuild{
-
- override def dependencies = (
- super.dependencies ++
- Resolver( mavenCentral ).bind(
- ScalaDependency("org.scalatest","scalatest","2.2.4")
- ) :+ BuildDependency(new File(context.cbtHome + "/plugins/scalatest"))
+ override def dependencies = super.dependencies ++ Seq(
+ plugins.scalaTest,
+ plugins.sbtLayout
)
}
diff --git a/examples/build-scalatest/src/main/scala/Hello.scala b/examples/build-scalatest/src/main/scala/Hello.scala
index 5e56da4..099a84d 100644
--- a/examples/build-scalatest/src/main/scala/Hello.scala
+++ b/examples/build-scalatest/src/main/scala/Hello.scala
@@ -1,6 +1,6 @@
object Main extends App{
- println("Hell")
+ println("Hello World")
def square(x: Int) = x * x
diff --git a/examples/build-scalatest/src/test/scala/Test.scala b/examples/build-scalatest/src/test/scala/Test.scala
index d176080..48b0a36 100644
--- a/examples/build-scalatest/src/test/scala/Test.scala
+++ b/examples/build-scalatest/src/test/scala/Test.scala
@@ -2,6 +2,9 @@ import collection.mutable.Stack
import org.scalatest._
class Test extends FlatSpec with Matchers {
+ "square" should "return double" in {
+ Main.square(2) should be (4)
+ }
"A Stack" should "pop values in last-in-first-out order" in {
val stack = new Stack[Int]
@@ -17,8 +20,4 @@ class Test extends FlatSpec with Matchers {
emptyStack.pop()
}
}
-
- "square" should "return double" in {
- Main.square(2) should be (4)
- }
} \ No newline at end of file
diff --git a/plugins/sbt_layout/SbtLayout.scala b/plugins/sbt_layout/SbtLayout.scala
new file mode 100644
index 0000000..5cd7a03
--- /dev/null
+++ b/plugins/sbt_layout/SbtLayout.scala
@@ -0,0 +1,10 @@
+package cbt
+
+trait SbtLayoutTest extends BaseBuild{
+ override def sources = Seq(projectDirectory ++ "/src/test/scala")
+ override def compileTarget = super.compileTarget.getParentFile ++ "/test-classes"
+}
+
+trait SbtLayoutMain extends BaseBuild{
+ override def sources = Seq( projectDirectory ++ "/src/main/scala" )
+}
diff --git a/plugins/sbt_layout/build/build.scala b/plugins/sbt_layout/build/build.scala
new file mode 100644
index 0000000..80ff3ba
--- /dev/null
+++ b/plugins/sbt_layout/build/build.scala
@@ -0,0 +1,2 @@
+import cbt._
+class Build(val context: Context) extends Plugin
diff --git a/plugins/scalajs/build/build.scala b/plugins/scalajs/build/build.scala
index 9a73704..0205cf8 100644
--- a/plugins/scalajs/build/build.scala
+++ b/plugins/scalajs/build/build.scala
@@ -1,9 +1,3 @@
import cbt._
-class Build(context: Context) extends BasicBuild(context) {
-
- override def dependencies =
- super.dependencies :+
- context.cbtDependency
-}
-
+class Build(val context: Context) extends Plugin
diff --git a/plugins/scalatest/ScalaTest.scala b/plugins/scalatest/ScalaTest.scala
index 9335982..ee96431 100644
--- a/plugins/scalatest/ScalaTest.scala
+++ b/plugins/scalatest/ScalaTest.scala
@@ -1,29 +1,6 @@
-import cbt._
+package cbt
import org.scalatest._
-import org.scalatest
-/* FIXME:
- - Separate out SbtLayout
- - Allow depending on this via a git dependency.
- Probably by adding support for subfolders to "GitDependency"
-*/
-
-trait SbtLayout extends BaseBuild{
- outer =>
- override def sources = Seq( projectDirectory ++ "/src/main/scala" )
- def testSources = projectDirectory ++ "/src/test/scala"
- def testDependencies: Seq[Dependency] = Nil
- lazy val testBuild =
- new BasicBuild(context) with ScalaTest{
- override def sources = Seq(testSources)
- override def target = outer.target
- override def compileTarget = outer.scalaTarget ++ "/test-classes"
- override def dependencies = (outer +: testDependencies) ++ super.dependencies
- }
- override def test: Option[ExitCode] =
- if(testSources.exists) Some( testBuild.run )
- else None
-}
trait ScalaTest extends BaseBuild{
override def run: ExitCode = {
@@ -33,9 +10,11 @@ trait ScalaTest extends BaseBuild{
runSuites( suiteNames.map( loadSuite( _, _classLoader ) ) )
ExitCode.Success
}
+ override def dependencies = super.dependencies ++ Resolver( mavenCentral ).bind( ScalaDependency("org.scalatest","scalatest","2.2.4") )
}
object ScalaTestLib{
+ import java.io.File
def runSuites(suites: Seq[Suite]) = {
def color: Boolean = true
def durations: Boolean = true
diff --git a/plugins/scalatest/build/build.scala b/plugins/scalatest/build/build.scala
index 0306ba7..dd21898 100644
--- a/plugins/scalatest/build/build.scala
+++ b/plugins/scalatest/build/build.scala
@@ -1,10 +1,9 @@
import cbt._
-class Build(val context: Context) extends BaseBuild{
+class Build(val context: Context) extends Plugin{
override def dependencies =
super.dependencies ++
Resolver( mavenCentral ).bind(
ScalaDependency("org.scalatest","scalatest","2.2.4")
- ) :+
- context.cbtDependency
+ )
}
diff --git a/stage2/BuildBuild.scala b/stage2/BuildBuild.scala
index 8ac619c..7eab5e6 100644
--- a/stage2/BuildBuild.scala
+++ b/stage2/BuildBuild.scala
@@ -1,18 +1,23 @@
package cbt
-import java.io._
import java.nio.file._
trait BuildBuild extends BaseBuild{
+ private final val managedContext = context.copy(
+ projectDirectory = managedBuildDirectory,
+ parentBuild=Some(this)
+ )
+
+ object plugins{
+ final val scalaTest = BuildDependency( managedContext.cbtHome ++ "/plugins/scalatest" )
+ final val sbtLayout = BuildDependency( managedContext.cbtHome ++ "/plugins/sbt_layout" )
+ }
+
override def dependencies =
super.dependencies :+ context.cbtDependency
- def managedBuildDirectory: File = lib.realpath( projectDirectory.parent )
+ def managedBuildDirectory: java.io.File = lib.realpath( projectDirectory.parent )
private object managedBuildCache extends Cache[BuildInterface]
def managedBuild = managedBuildCache{
try{
- val managedContext = context.copy(
- projectDirectory = managedBuildDirectory,
- parentBuild=Some(this)
- )
val managedBuildFile = projectDirectory++"/build.scala"
logger.composition("Loading build at "++managedContext.projectDirectory.toString)
(
diff --git a/stage2/Plugin.scala b/stage2/Plugin.scala
new file mode 100644
index 0000000..94a8749
--- /dev/null
+++ b/stage2/Plugin.scala
@@ -0,0 +1,4 @@
+package cbt
+trait Plugin extends BaseBuild{
+ override def dependencies = super.dependencies :+ context.cbtDependency
+}