diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-02 10:30:12 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-03-02 17:30:40 -0800 |
commit | 1d7a0c142330d43adb5c221068d640dbcd6d8462 (patch) | |
tree | c726fbf56fde25b6971d3c2c6b6e7f0feb04a3b5 /scalalib | |
parent | e7e633bde72b704055b3d2351c4082aa892ed97a (diff) | |
download | mill-1d7a0c142330d43adb5c221068d640dbcd6d8462.tar.gz mill-1d7a0c142330d43adb5c221068d640dbcd6d8462.tar.bz2 mill-1d7a0c142330d43adb5c221068d640dbcd6d8462.zip |
Allow people to substitute in their own implementation of ScalaModule#scalaWorker to configure resolvers/etc.
Diffstat (limited to 'scalalib')
-rw-r--r-- | scalalib/src/mill/scalalib/ScalaModule.scala | 11 | ||||
-rw-r--r-- | scalalib/src/mill/scalalib/ScalaWorkerApi.scala | 8 |
2 files changed, 13 insertions, 6 deletions
diff --git a/scalalib/src/mill/scalalib/ScalaModule.scala b/scalalib/src/mill/scalalib/ScalaModule.scala index f92d4d49..bbfd4b27 100644 --- a/scalalib/src/mill/scalalib/ScalaModule.scala +++ b/scalalib/src/mill/scalalib/ScalaModule.scala @@ -20,17 +20,20 @@ trait ScalaModule extends mill.Module with TaskModule { outer => def defaultCommandName() = "run" trait Tests extends TestModule{ def scalaVersion = outer.scalaVersion() + override def scalaWorker = outer.scalaWorker override def moduleDeps = Seq(outer) } def scalaVersion: T[String] def mainClass: T[Option[String]] = None + def scalaWorker: ScalaWorkerModule = mill.scalalib.ScalaWorkerModule + def finalMainClass: T[String] = T{ mainClass() match { case Some(main) => Result.Success(main) case None => - mill.scalalib.ScalaWorkerApi.scalaWorker().discoverMainClasses(compile()) match { + scalaWorker.scalaWorker().discoverMainClasses(compile()) match { case Seq() => Result.Failure("No main class specified or found") case Seq(main) => Result.Success(main) case mains => @@ -138,7 +141,7 @@ trait ScalaModule extends mill.Module with TaskModule { outer => } yield PathRef(path) } def compile: T[CompilationResult] = T.persistent{ - mill.scalalib.ScalaWorkerApi.scalaWorker().compileScala( + scalaWorker.scalaWorker().compileScala( scalaVersion(), allSourceFiles().map(_.path), scalaCompilerBridgeSources().map(_.path), @@ -338,7 +341,7 @@ trait TestModule extends ScalaModule with TaskModule { Jvm.subprocess( mainClass = "mill.scalaworker.ScalaWorker", - classPath = mill.scalalib.ScalaWorkerApi.scalaWorkerClasspath(), + classPath = scalaWorker.scalaWorkerClasspath(), jvmArgs = forkArgs(), envArgs = forkEnv(), mainArgs = Seq( @@ -360,7 +363,7 @@ trait TestModule extends ScalaModule with TaskModule { def testLocal(args: String*) = T.command{ val outputPath = T.ctx().dest/"out.json" - mill.scalalib.ScalaWorkerApi.scalaWorker().runTests( + scalaWorker.scalaWorker().runTests( TestRunner.frameworks(testFrameworks()), runClasspath().map(_.path), Agg(compile().classes.path), diff --git a/scalalib/src/mill/scalalib/ScalaWorkerApi.scala b/scalalib/src/mill/scalalib/ScalaWorkerApi.scala index 7e11f61d..883cd30e 100644 --- a/scalalib/src/mill/scalalib/ScalaWorkerApi.scala +++ b/scalalib/src/mill/scalalib/ScalaWorkerApi.scala @@ -11,7 +11,11 @@ import mill.define.{Discover, Worker} import mill.scalalib.Lib.resolveDependencies import mill.util.Loose import mill.util.JsonFormatters._ -object ScalaWorkerApi extends mill.define.ExternalModule { + +object ScalaWorkerModule extends mill.define.ExternalModule with ScalaWorkerModule{ + lazy val millDiscover = Discover[this.type] +} +trait ScalaWorkerModule extends mill.Module{ def scalaWorkerClasspath = T{ val scalaWorkerJar = sys.props("MILL_SCALA_WORKER") if (scalaWorkerJar != null) { @@ -42,7 +46,7 @@ object ScalaWorkerApi extends mill.define.ExternalModule { Seq(ivy"org.scala-sbt:compiler-interface:1.1.0") ) } - lazy val millDiscover = Discover[this.type] + } trait ScalaWorkerApi { |