diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2016-06-14 22:15:52 -0400 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2016-06-15 01:24:46 -0400 |
commit | ee439cdc67034d35762d54a6d87d51844fcf6dde (patch) | |
tree | c6aa1a4663c63f13638b16f263105a6e72f2cf6e /stage2/PackageJars.scala | |
parent | 8794d3ce0ca7f92df24c317c9a9b7025aa0e3dee (diff) | |
download | cbt-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.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 + ) + } +} |