aboutsummaryrefslogtreecommitdiff
path: root/stage2
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-06-19 16:15:21 -0400
committerChristopher Vogt <oss.nsp@cvogt.org>2016-06-19 16:15:21 -0400
commit0f5300349539bfa9642dca7ac7800614a57f316f (patch)
treeb4e281ccc3f0cc190f19bb8f256f3b228fb2f02d /stage2
parent1531ea1c1383368f8a8048a079397f08e25ecd11 (diff)
downloadcbt-0f5300349539bfa9642dca7ac7800614a57f316f.tar.gz
cbt-0f5300349539bfa9642dca7ac7800614a57f316f.tar.bz2
cbt-0f5300349539bfa9642dca7ac7800614a57f316f.zip
built-in plugin structure improvements
- move plugins into cbt namespace - enable scalac warnings in builds by default - merged language flags into AdvancedScala trait
Diffstat (limited to 'stage2')
-rw-r--r--stage2/BasicBuild.scala17
-rw-r--r--stage2/Lib.scala3
-rw-r--r--stage2/mixins.scala57
-rw-r--r--stage2/plugins/AdvancedFlags.scala10
-rw-r--r--stage2/plugins/GithubPom.scala11
-rw-r--r--stage2/plugins/ScalaParadise.scala29
6 files changed, 56 insertions, 71 deletions
diff --git a/stage2/BasicBuild.scala b/stage2/BasicBuild.scala
index 2083acc..3784d58 100644
--- a/stage2/BasicBuild.scala
+++ b/stage2/BasicBuild.scala
@@ -9,17 +9,6 @@ import java.util.jar._
import scala.util._
-trait Recommended extends BaseBuild{
- override def scalacOptions = super.scalacOptions ++ Seq(
- "-feature",
- "-deprecation",
- "-unchecked",
- "-language:postfixOps",
- "-language:implicitConversions",
- "-language:higherKinds",
- "-language:existentials"
- )
-}
class BasicBuild(val context: Context) extends BaseBuild
trait BaseBuild extends DependencyImplementation with BuildInterface with TriggerLoop with SbtDependencyDsl{
def context: Context
@@ -120,7 +109,11 @@ trait BaseBuild extends DependencyImplementation with BuildInterface with Trigge
// ========== compile, run, test ==========
/** scalac options used for zinc and scaladoc */
- def scalacOptions: Seq[String] = Seq()
+ def scalacOptions: Seq[String] = Seq(
+ "-feature",
+ "-deprecation",
+ "-unchecked"
+ )
private object needsUpdateCache extends Cache[Boolean]
def needsUpdate: Boolean = needsUpdateCache(
diff --git a/stage2/Lib.scala b/stage2/Lib.scala
index 1cbff9a..c08657f 100644
--- a/stage2/Lib.scala
+++ b/stage2/Lib.scala
@@ -133,8 +133,7 @@ final class Lib(logger: Logger) extends Stage1Lib(logger) with Scaffold{
val baseTasks = Seq(
classOf[BasicBuild],
classOf[PackageJars],
- classOf[Publish],
- classOf[Recommended]
+ classOf[Publish]
).flatMap(lib.taskNames).distinct.sorted
val thisTasks = lib.taskNames(buildClass) diff baseTasks
(
diff --git a/stage2/mixins.scala b/stage2/mixins.scala
deleted file mode 100644
index 221fcc5..0000000
--- a/stage2/mixins.scala
+++ /dev/null
@@ -1,57 +0,0 @@
-package cbt
-package mixins
-import java.net.URL
-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"
-}
diff --git a/stage2/plugins/AdvancedFlags.scala b/stage2/plugins/AdvancedFlags.scala
new file mode 100644
index 0000000..4ff701d
--- /dev/null
+++ b/stage2/plugins/AdvancedFlags.scala
@@ -0,0 +1,10 @@
+package cbt
+trait AdvancedScala extends BaseBuild{
+ override def scalacOptions = super.scalacOptions ++ Seq(
+ "-language:postfixOps",
+ "-language:implicitConversions",
+ "-language:higherKinds",
+ "-language:existentials",
+ "-language:experimental.macros"
+ )
+}
diff --git a/stage2/plugins/GithubPom.scala b/stage2/plugins/GithubPom.scala
new file mode 100644
index 0000000..8b11385
--- /dev/null
+++ b/stage2/plugins/GithubPom.scala
@@ -0,0 +1,11 @@
+package cbt
+import java.net.URL
+trait GithubPom 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"
+}
diff --git a/stage2/plugins/ScalaParadise.scala b/stage2/plugins/ScalaParadise.scala
new file mode 100644
index 0000000..28ee934
--- /dev/null
+++ b/stage2/plugins/ScalaParadise.scala
@@ -0,0 +1,29 @@
+package cbt
+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.jar.string)
+ else
+ Seq()
+ )
+ )
+}