aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Christopher Vogt <oss.nsp@cvogt.org>2017-04-05 11:15:48 -0400
committerGitHub <noreply@github.com>2017-04-05 11:15:48 -0400
commit53f1b372b813f179cd5bc2d95c10397a0d6114db (patch)
tree295553a5baf25d64a81a7fe2b5d2536cc5ac7ce6
parent965095f8cf68707b6d164633baa858eb7ac33b4c (diff)
parente174d1db2b27a2a9018169cb0dc03635df8de11d (diff)
downloadcbt-53f1b372b813f179cd5bc2d95c10397a0d6114db.tar.gz
cbt-53f1b372b813f179cd5bc2d95c10397a0d6114db.tar.bz2
cbt-53f1b372b813f179cd5bc2d95c10397a0d6114db.zip
Merge pull request #481 from cvogt/scala-xray-plugin
Add ScalaXRay (sxr) plugin
-rw-r--r--examples/scala-xray/build/build.scala3
-rw-r--r--examples/scala-xray/src/Main.scala6
-rw-r--r--internal/plugins/library/Library.scala2
-rw-r--r--internal/plugins/shared/Shared.scala2
-rw-r--r--libraries/file/file.scala5
-rw-r--r--ports/scala-xray/build/build.scala54
-rw-r--r--stage2/plugins/ScalaXRay.scala17
-rw-r--r--stage2/ports.scala1
8 files changed, 86 insertions, 4 deletions
diff --git a/examples/scala-xray/build/build.scala b/examples/scala-xray/build/build.scala
new file mode 100644
index 0000000..6136415
--- /dev/null
+++ b/examples/scala-xray/build/build.scala
@@ -0,0 +1,3 @@
+package tut_build
+import cbt._
+class Build(val context: Context) extends ScalaXRay
diff --git a/examples/scala-xray/src/Main.scala b/examples/scala-xray/src/Main.scala
new file mode 100644
index 0000000..81c087f
--- /dev/null
+++ b/examples/scala-xray/src/Main.scala
@@ -0,0 +1,6 @@
+package cbt_examples.sxr
+object Main{
+ def main( args: Array[String] ): Unit = {
+ println( Console.GREEN ++ "Hello World" ++ Console.RESET )
+ }
+}
diff --git a/internal/plugins/library/Library.scala b/internal/plugins/library/Library.scala
index a9dec7c..8fea11a 100644
--- a/internal/plugins/library/Library.scala
+++ b/internal/plugins/library/Library.scala
@@ -3,7 +3,7 @@ import cbt._
import java.io._
import scala.concurrent._
import scala.concurrent.duration._
-trait Library extends Scalariform with GoogleJavaFormat with DynamicOverrides with AdvancedScala{
+trait Library extends Scalariform with GoogleJavaFormat with DynamicOverrides with AdvancedScala with ScalaXRay{
def inceptionYear: Int
def description: String
def version = ???
diff --git a/internal/plugins/shared/Shared.scala b/internal/plugins/shared/Shared.scala
index 2db9770..c197997 100644
--- a/internal/plugins/shared/Shared.scala
+++ b/internal/plugins/shared/Shared.scala
@@ -1,7 +1,7 @@
package cbt_internal
import cbt._
import java.net.URL
-trait Shared extends AdvancedScala with SonatypeRelease with SnapshotVersion with GithubPom{
+trait Shared extends AdvancedScala with SonatypeRelease with SnapshotVersion with GithubPom with ScalaXRay{
override def user = "cvogt"
override def groupId = "org.cvogt"
override def organization = Some( Organization( "Jan Christopher Vogt", Some( new URL("http://cvogt.org") ) ) )
diff --git a/libraries/file/file.scala b/libraries/file/file.scala
index d420964..7482c9b 100644
--- a/libraries/file/file.scala
+++ b/libraries/file/file.scala
@@ -69,8 +69,9 @@ trait Module {
val map = files.sorted.flatMap { base =>
val b = base.getCanonicalFile.string
if ( base.isDirectory ) {
- base.listRecursive.map { f =>
- f -> f.getCanonicalFile.string.stripPrefix( b ).stripPrefix( File.separator )
+ base.listRecursive.collect {
+ case f if !f.isDirectory =>
+ f -> f.getCanonicalFile.string.stripPrefix( b ).stripPrefix( File.separator )
}
} else {
Seq( base -> base.getName )
diff --git a/ports/scala-xray/build/build.scala b/ports/scala-xray/build/build.scala
new file mode 100644
index 0000000..7c8cdfc
--- /dev/null
+++ b/ports/scala-xray/build/build.scala
@@ -0,0 +1,54 @@
+package cbt_ports.sxr
+import cbt._
+import java.net._
+import java.io._
+class Build(val context: Context) extends PackageJars with AdvancedScala{ outer =>
+ override def defaultScalaVersion = "2.11.8"
+ def groupId = "org.scala-sbt"
+
+ private def gitHash =
+ if( scalaVersion.startsWith("2.12") ) "cb66c7aaad618dc072d75f5899d9fdf3e8fde8d8"
+ else if( scalaVersion.startsWith("2.11") ) "cb66c7aaad618dc072d75f5899d9fdf3e8fde8d8"
+ else if( scalaVersion.startsWith("2.10") ) "1239fa39b5ee8c171af3f9df201497561d749826"
+ else throw new Exception( "Unsupported scalaVersion: " + scalaVersion )
+
+ private def gitUrl =
+ if( scalaVersion.startsWith("2.12") ) "https://github.com/SethTisue/browse.git"
+ else if( scalaVersion.startsWith("2.11") ) "https://github.com/SethTisue/browse.git"
+ else if( scalaVersion.startsWith("2.10") ) "https://github.com/sbt/browse.git"
+ else throw new Exception( "Unsupported scalaVersion: " + scalaVersion )
+
+ def version = "rev-"+gitHash
+
+ override def dependencies = Seq( libraries.scala.compiler )
+ val github = GitDependency.checkout( gitUrl, gitHash )
+ override def sources = Seq( github / "src" / "main" / "scala" )
+
+ override def resourceClasspath = {
+ val jquery_version = "1.3.2"
+ val jquery_scrollto_version = "1.4.2"
+ val jquery_qtip_version = "2.1.1"
+
+ val resourcesManaged = github / "target" / "resources_managed"
+ lib.write(
+ resourcesManaged / "jquery-all.js",
+ Seq(
+ "https://code.jquery.com/jquery-" ~ jquery_version ~ ".min.js",
+ "http://cdn.jsdelivr.net/jquery.scrollto/" ~ jquery_scrollto_version ~ "/jquery.scrollTo.min.js",
+ "http://qtip2.com/v/" ~ jquery_qtip_version ~ "/jquery.qtip.min.js"
+ ).map{ s =>
+ val url = new URL( s )
+ val file = resourcesManaged / new File( url.getPath ).getName
+ lib.download( url, file, None )
+ file.readAsString
+ }.mkString("\n")
+ )
+
+ ClassPath(
+ Seq(
+ github / "src" / "main" / "resources",
+ resourcesManaged
+ )
+ )
+ }
+}
diff --git a/stage2/plugins/ScalaXRay.scala b/stage2/plugins/ScalaXRay.scala
new file mode 100644
index 0000000..9654c59
--- /dev/null
+++ b/stage2/plugins/ScalaXRay.scala
@@ -0,0 +1,17 @@
+package cbt
+import java.io.File
+trait ScalaXRay extends BaseBuild{
+ override def scalacOptions = {
+ super.scalacOptions ++ ScalaXRay.scalacOptions(
+ ports.scalaXRay.dependency.asInstanceOf[PackageJars]
+ )
+ }
+}
+object ScalaXRay{
+ def scalacOptions( plugin: PackageJars, linkFile: Option[File] = None ) =
+ Seq(
+ "-Xplugin:" ~ plugin.jar.get.string,
+ "-Xplugin-require:sxr"
+ //"-P:sxr:base-directory:" ~ baseDirectory.string
+ ) ++ linkFile.map( "-P:sxr:link-file:" ~ _.string )
+}
diff --git a/stage2/ports.scala b/stage2/ports.scala
index 460a255..6aef98e 100644
--- a/stage2/ports.scala
+++ b/stage2/ports.scala
@@ -9,4 +9,5 @@ class ports( context: Context, scalaVersion: String ) {
)
def mima = dep( "migration-manager" )
def scalariform = dep( "scalariform" )
+ def scalaXRay = dep( "scala-xray" )
}