diff options
-rw-r--r-- | build.sbt | 31 | ||||
-rwxr-xr-x | build.sc | 4 | ||||
-rw-r--r-- | core/src/mill/define/Ctx.scala | 10 | ||||
-rw-r--r-- | core/src/mill/define/Module.scala | 16 | ||||
-rw-r--r-- | core/src/mill/eval/Evaluator.scala | 10 | ||||
-rw-r--r-- | core/test/src/mill/eval/ModuleTests.scala | 3 | ||||
-rw-r--r-- | core/test/src/mill/util/TestEvaluator.scala | 4 |
7 files changed, 29 insertions, 49 deletions
@@ -64,37 +64,6 @@ def ammoniteRun(hole: SettingKey[File], args: String => List[String], suffix: St } -//def bridge(bridgeVersion: String) = Project( -// id = "bridge" + bridgeVersion.replace('.', '_'), -// base = file("target/bridge/" + bridgeVersion.replace('.', '_')), -// settings = Seq( -// organization := "com.lihaoyi", -// scalaVersion := bridgeVersion, -// name := "mill-bridge", -// target := baseDirectory.value, -// crossVersion := CrossVersion.full, -// libraryDependencies ++= Seq( -// "org.scala-lang" % "scala-compiler" % scalaVersion.value, -// "org.scala-sbt" % "compiler-interface" % "1.0.5" -// ), -// (sourceGenerators in Compile) += ammoniteRun( -// sourceManaged in Compile, -// List("shared.sc", "downloadBridgeSource", _, bridgeVersion) -// ).taskValue.map(x => (x ** "*.scala").get) -// ) -//) -// -//lazy val bridge2_10_6 = bridge("2.10.6") -//lazy val bridge2_11_8 = bridge("2.11.8") -////lazy val bridge2_11_9 = bridge("2.11.9") -////lazy val bridge2_11_10 = bridge("2.11.10") -//lazy val bridge2_11_11 = bridge("2.11.11") -////lazy val bridge2_12_0 = bridge("2.12.0") -////lazy val bridge2_12_1 = bridge("2.12.1") -////lazy val bridge2_12_2 = bridge("2.12.2") -//lazy val bridge2_12_3 = bridge("2.12.3") -//lazy val bridge2_12_4 = bridge("2.12.4") - lazy val core = project .dependsOn(moduledefs) .settings( @@ -181,10 +181,6 @@ val assemblyProjects = Seq(scalalib, scalajslib) def assemblyClasspath = mill.define.Task.traverse(assemblyProjects)(_.runClasspath) -def publishBridges(credentials: String, gpgPassphrase: String) = T.command { - mill.define.Task.traverse(bridges.items)(_._2.publish(credentials, gpgPassphrase)) -} - def assemblyBase(classpath: Agg[Path], extraArgs: String) (implicit ctx: mill.util.Ctx.DestCtx) = { createAssembly( diff --git a/core/src/mill/define/Ctx.scala b/core/src/mill/define/Ctx.scala index ddbdca96..405f45ed 100644 --- a/core/src/mill/define/Ctx.scala +++ b/core/src/mill/define/Ctx.scala @@ -47,23 +47,27 @@ case class Ctx(enclosing: String, segment: Segment, millSourcePath: Path, segments: Segments, - overrides: Int){ + overrides: Int, + external: Boolean){ } object Ctx{ + case class External(value: Boolean) implicit def make(implicit millModuleEnclosing0: sourcecode.Enclosing, millModuleLine0: sourcecode.Line, millName0: sourcecode.Name, millModuleBasePath0: BasePath, segments0: Segments, - overrides0: Overrides): Ctx = { + overrides0: Overrides, + external0: External): Ctx = { Ctx( millModuleEnclosing0.value, millModuleLine0.value, Segment.Label(millName0.value), millModuleBasePath0.value, segments0, - overrides0.value + overrides0.value, + external0.value ) } }
\ No newline at end of file diff --git a/core/src/mill/define/Module.scala b/core/src/mill/define/Module.scala index 039011d8..e765a6b4 100644 --- a/core/src/mill/define/Module.scala +++ b/core/src/mill/define/Module.scala @@ -25,6 +25,7 @@ class Module(implicit outerCtx0: mill.define.Ctx) extends mill.moduledefs.Cacher lazy val millModuleDirectChildren = millInternal.reflectNestedObjects[Module] def millOuterCtx = outerCtx0 def millSourcePath: Path = millOuterCtx.millSourcePath / millOuterCtx.segment.pathSegments + implicit def millModuleExternal: Ctx.External = Ctx.External(millOuterCtx.external) implicit def millModuleBasePath: BasePath = BasePath(millSourcePath) implicit def millModuleSegments: Segments = { millOuterCtx.segments ++ Seq(millOuterCtx.segment) @@ -92,12 +93,20 @@ trait TaskModule extends Module { object BaseModule{ case class Implicit(value: BaseModule) } -class BaseModule(millSourcePath0: Path) +class BaseModule(millSourcePath0: Path, external0: Boolean = false) (implicit millModuleEnclosing0: sourcecode.Enclosing, millModuleLine0: sourcecode.Line, millName0: sourcecode.Name) extends Module()( - mill.define.Ctx.make(implicitly, implicitly, implicitly, BasePath(millSourcePath0), Segments(), Overrides(0)) + mill.define.Ctx.make( + implicitly, + implicitly, + implicitly, + BasePath(millSourcePath0), + Segments(), + Overrides(0), + Ctx.External(external0) + ) ){ // A BaseModule should provide an empty Segments list to it's children, since // it is the root of the module tree, and thus must not include it's own @@ -110,7 +119,8 @@ class BaseModule(millSourcePath0: Path) class ExternalModule(implicit millModuleEnclosing0: sourcecode.Enclosing, millModuleLine0: sourcecode.Line, - millName0: sourcecode.Name) extends BaseModule(ammonite.ops.pwd){ + millName0: sourcecode.Name) + extends BaseModule(ammonite.ops.pwd, external0 = true){ assert( !" #".exists(millModuleEnclosing0.value.contains(_)), "External modules must be at a top-level static path, not " + millModuleEnclosing0.value diff --git a/core/src/mill/eval/Evaluator.scala b/core/src/mill/eval/Evaluator.scala index 21e3d3a9..d8d690ac 100644 --- a/core/src/mill/eval/Evaluator.scala +++ b/core/src/mill/eval/Evaluator.scala @@ -126,11 +126,11 @@ class Evaluator[T](val outPath: Path, ) case Right(labelledNamedTask) => - val paths = if (labelledNamedTask.task.asTarget.exists(rootModule.millInternal.targets.contains)){ - Evaluator.resolveDestPaths(outPath, labelledNamedTask.segments) - }else{ - Evaluator.resolveDestPaths(externalOutPath, labelledNamedTask.segments) - } + val paths = Evaluator.resolveDestPaths( + if (!labelledNamedTask.task.ctx.external) outPath else externalOutPath, + labelledNamedTask.segments + ) + val groupBasePath = millSourcePath / Evaluator.makeSegmentStrings(labelledNamedTask.segments) mkdir(paths.out) val cached = for{ diff --git a/core/test/src/mill/eval/ModuleTests.scala b/core/test/src/mill/eval/ModuleTests.scala index 56c1a47b..db70fee3 100644 --- a/core/test/src/mill/eval/ModuleTests.scala +++ b/core/test/src/mill/eval/ModuleTests.scala @@ -18,10 +18,11 @@ object ModuleTests extends TestSuite{ def z = T{ ExternalModule.x() + ExternalModule.inner.y() } } val tests = Tests { + rm(TestEvaluator.externalOutPath) 'externalModuleTargetsAreNamespacedByModulePackagePath - { val check = new TestEvaluator( Build, - pwd / 'target / 'workspace / "module-tests" / "externalModule", + pwd / 'target / 'external, pwd ) diff --git a/core/test/src/mill/util/TestEvaluator.scala b/core/test/src/mill/util/TestEvaluator.scala index 26577f3e..416ed71c 100644 --- a/core/test/src/mill/util/TestEvaluator.scala +++ b/core/test/src/mill/util/TestEvaluator.scala @@ -16,8 +16,8 @@ class TestEvaluator[T <: TestUtil.TestBuild](module: T, workspacePath: Path, millSourcePath: Path) (implicit discover: Discover[T]){ - val logger = DummyLogger -// val logger = new PrintLogger(true, ammonite.util.Colors.Default, System.out, System.out, System.err) +// val logger = DummyLogger + val logger = new PrintLogger(true, ammonite.util.Colors.Default, System.out, System.out, System.err) val evaluator = new Evaluator(workspacePath, millSourcePath, TestEvaluator.externalOutPath, module, discover, logger) def apply[T](t: Task[T]): Either[Result.Failing, (T, Int)] = { |