aboutsummaryrefslogtreecommitdiff
path: root/stage2/PackageJars.scala
diff options
context:
space:
mode:
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
+ )
+ }
+}