From cde65b142ca4c356134350525775d631015799ee Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Fri, 12 Jan 2018 21:27:41 -0800 Subject: Allow `Cross`-builds to themselves be `Module`s so you can nest stuff inside Also properly propagate `mainClass` into `assembly` --- core/src/main/scala/mill/define/Cross.scala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'core/src/main/scala') diff --git a/core/src/main/scala/mill/define/Cross.scala b/core/src/main/scala/mill/define/Cross.scala index e7d0d843..8e27c714 100644 --- a/core/src/main/scala/mill/define/Cross.scala +++ b/core/src/main/scala/mill/define/Cross.scala @@ -43,8 +43,8 @@ object Cross{ * } */ class Cross[T](cases: Any*) - (implicit ci: Cross.Factory[T], - val ctx: Module.Ctx){ + (implicit ci: Cross.Factory[T], + ctx: Module.Ctx) extends mill.define.Module()(ctx) { val items = for(c0 <- cases.toList) yield{ val c = c0 match{ @@ -52,10 +52,15 @@ class Cross[T](cases: Any*) case v => Tuple1(v) } val crossValues = c.productIterator.toList.reverse + val relPath = ctx.segment match{ + case Segment.Label(s) => ammonite.ops.empty / s + case Segment.Cross(vs) => ammonite.ops.empty / vs.map(_.toString) + } val sub = ci.make( c, ctx.copy( segments0 = ctx.segments0 ++ Seq(ctx.segment), + basePath = ctx.basePath / relPath, segment = Segment.Cross(crossValues) ) ) -- cgit v1.2.3