diff options
Diffstat (limited to 'stage2/PackageJars.scala')
-rw-r--r-- | stage2/PackageJars.scala | 33 |
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 + ) + } +} |