diff options
author | Ilya Kirillov <darthorimar@users.noreply.github.com> | 2017-06-27 00:17:56 +0300 |
---|---|---|
committer | Ilya Kirillov <darthorimar@users.noreply.github.com> | 2017-06-28 14:48:37 +0300 |
commit | 35c1488e2a1afe26b53399ccbc94b1730c85f377 (patch) | |
tree | cb4193b9c91dee80ee32b7727890a4f0e123a4e4 | |
parent | 1a78ac34353cc15dfc2de67ad1f4e71f9d83cd61 (diff) | |
download | cbt-35c1488e2a1afe26b53399ccbc94b1730c85f377.tar.gz cbt-35c1488e2a1afe26b53399ccbc94b1730c85f377.tar.bz2 cbt-35c1488e2a1afe26b53399ccbc94b1730c85f377.zip |
Add extra modules resolving
-rw-r--r-- | stage2/plugins/ExportBuildInformation.scala | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/stage2/plugins/ExportBuildInformation.scala b/stage2/plugins/ExportBuildInformation.scala index bfc3a66..ea1afeb 100644 --- a/stage2/plugins/ExportBuildInformation.scala +++ b/stage2/plugins/ExportBuildInformation.scala @@ -8,7 +8,7 @@ import scala.util._ trait ExportBuildInformation { self: BaseBuild => def buildInfoXml: String = - BuildInformationSerializer.serialize(BuildInformation.Project(self)).toString + BuildInformationSerializer.serialize(BuildInformation.Project(self, context.args)).toString } object BuildInformation { @@ -52,10 +52,12 @@ object BuildInformation { } object Project { - def apply(build: BaseBuild): Project = - new BuildInformationExporter(build).exportBuildInformation + def apply(build: BaseBuild, args: Seq[String]): Project = { + val extraModuleNames: Seq[String] = args.lift(0).map(_.split(":").toSeq).getOrElse(Seq.empty) + new BuildInformationExporter(build, extraModuleNames).exportBuildInformation + } - class BuildInformationExporter(rootBuild: BaseBuild) { + class BuildInformationExporter(rootBuild: BaseBuild, extraModuleNames: Seq[String]) { def exportBuildInformation: Project = { val moduleBuilds = transitiveBuilds(rootBuild) val libraries = moduleBuilds @@ -64,7 +66,13 @@ object BuildInformation { .distinct val cbtLibraries = convertCbtLibraries val rootModule = exportModule(rootBuild) - val modules = moduleBuilds + + val extraModuleBuilds = extraModuleNames + .map(f => new File(f)) + .filter(f => f.exists && f.isDirectory) + .map(f => DirectoryDependency(f)(rootBuild.context).dependency.asInstanceOf[BaseBuild]) + .flatMap(transitiveBuilds) + val modules = (moduleBuilds ++ extraModuleBuilds) .map(exportModule) .distinct val scalaCompilers = modules |