summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/scala/mill/define/Cross.scala9
-rw-r--r--scalalib/src/main/scala/mill/scalalib/Module.scala2
2 files changed, 9 insertions, 2 deletions
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)
)
)
diff --git a/scalalib/src/main/scala/mill/scalalib/Module.scala b/scalalib/src/main/scala/mill/scalalib/Module.scala
index a6819435..d3120721 100644
--- a/scalalib/src/main/scala/mill/scalalib/Module.scala
+++ b/scalalib/src/main/scala/mill/scalalib/Module.scala
@@ -218,6 +218,7 @@ trait Module extends mill.Module with TaskModule { outer =>
def assembly = T{
createAssembly(
runClasspath().map(_.path).filter(exists),
+ mainClass(),
prependShellScript = prependShellScript()
)
}
@@ -376,6 +377,7 @@ trait SbtModule extends Module { outer =>
}
trait CrossSbtModule extends SbtModule { outer =>
+ override def basePath = super.basePath / ammonite.ops.up
implicit def crossSbtModuleResolver: Resolver[CrossSbtModule] = new Resolver[CrossSbtModule]{
def resolve[V <: CrossSbtModule](c: Cross[V]): V = {
crossScalaVersion.split('.')