aboutsummaryrefslogtreecommitdiff
path: root/stage2/PackageJars.scala
diff options
context:
space:
mode:
authorChristopher Vogt <oss.nsp@cvogt.org>2016-06-14 22:15:52 -0400
committerChristopher Vogt <oss.nsp@cvogt.org>2016-06-15 01:24:46 -0400
commitee439cdc67034d35762d54a6d87d51844fcf6dde (patch)
treec6aa1a4663c63f13638b16f263105a6e72f2cf6e /stage2/PackageJars.scala
parent8794d3ce0ca7f92df24c317c9a9b7025aa0e3dee (diff)
downloadcbt-ee439cdc67034d35762d54a6d87d51844fcf6dde.tar.gz
cbt-ee439cdc67034d35762d54a6d87d51844fcf6dde.tar.bz2
cbt-ee439cdc67034d35762d54a6d87d51844fcf6dde.zip
turn Build base classes into traits for less verbosity and uniform usage with any other plugin
Diffstat (limited to 'stage2/PackageJars.scala')
-rw-r--r--stage2/PackageJars.scala33
1 files changed, 33 insertions, 0 deletions
diff --git a/stage2/PackageJars.scala b/stage2/PackageJars.scala
new file mode 100644
index 0000000..8e3f424
--- /dev/null
+++ b/stage2/PackageJars.scala
@@ -0,0 +1,33 @@
+package cbt
+import java.io.File
+import scala.collection.immutable.Seq
+// 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
+ final def version = context.version getOrElse defaultVersion
+ def `package`: Seq[File] = lib.concurrently( enableConcurrency )(
+ Seq(() => jar, () => docJar, () => srcJar)
+ )( _() ).flatten
+
+ private object cacheJarBasicBuild extends Cache[Option[File]]
+ def jar: Option[File] = cacheJarBasicBuild{
+ compile.flatMap( lib.jar( artifactId, scalaMajorVersion, version, _, jarTarget ) )
+ }
+
+ private object cacheSrcJarBasicBuild extends Cache[Option[File]]
+ def srcJar: Option[File] = cacheSrcJarBasicBuild{
+ lib.srcJar( sourceFiles, artifactId, scalaMajorVersion, version, scalaTarget )
+ }
+
+ private object cacheDocBasicBuild extends Cache[Option[File]]
+ def docJar: Option[File] = cacheDocBasicBuild{
+ lib.docJar(
+ context.cbtHasChanged,
+ scalaVersion, sourceFiles, dependencyClasspath, apiTarget,
+ jarTarget, artifactId, scalaMajorVersion, version,
+ scalacOptions, context.classLoaderCache, context.paths.mavenCache
+ )
+ }
+}