diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-07 22:13:16 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2017-11-07 22:13:16 -0800 |
commit | 883c382d58ce3aabf5bd1c09c4f6a833932e8be4 (patch) | |
tree | f8bd24f5bbae4e434ede9a99d61ce51da7ccd1f2 /build.sc | |
parent | db2f6a1af4e7dffd8cec0e6ce3adabffbf981b31 (diff) | |
download | mill-883c382d58ce3aabf5bd1c09c4f6a833932e8be4.tar.gz mill-883c382d58ce3aabf5bd1c09c4f6a833932e8be4.tar.bz2 mill-883c382d58ce3aabf5bd1c09c4f6a833932e8be4.zip |
First full metacircular compile-build-execute workflow now works using the `build.sc` file in the root of the repo. Run using
```
sbt scalaplugin/compile "core/run build.sc ScalaPlugin.console"
```
Diffstat (limited to 'build.sc')
-rw-r--r-- | build.sc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/build.sc b/build.sc new file mode 100644 index 00000000..8d91c3e1 --- /dev/null +++ b/build.sc @@ -0,0 +1,47 @@ +import $cp.scalaplugin.target.`scala-2.12`.classes +import ammonite.ops.pwd +import coursier.{Dependency => Dep, Module => Mod} +import forge.discover.Discovered +import forge.eval.{Evaluator, PathRef} +import forge.scalaplugin.Subproject.ScalaDep +import forge.util.OSet +import forge._ +import forge.scalaplugin._ + +object Build{ + + + object Core extends Subproject { + def scalaVersion = T{ "2.12.4" } + override def compileIvyDeps = T{ + super.compileIvyDeps() ++ Seq[ScalaDep]( + Dep(Mod("org.scala-lang", "scala-reflect"), scalaVersion(), configuration = "provided") + ) + } + + override def ivyDeps = T{ + super.ivyDeps() ++ Seq[ScalaDep]( + ScalaDep(Dep(Mod("com.lihaoyi", "sourcecode"), "0.1.4")), + ScalaDep(Dep(Mod("com.lihaoyi", "pprint"), "0.5.3")), + ScalaDep.Point(Dep(Mod("com.lihaoyi", "ammonite"), "1.0.3")), + ScalaDep(Dep(Mod("com.typesafe.play", "play-json"), "2.6.6")), + ScalaDep(Dep(Mod("org.scala-sbt", "zinc"), "1.0.3")) + ) + } + + + def basePath = T{ pwd / 'core } + override def sources = T{ PathRef(pwd/'core/'src/'main/'scala) } + override def resources = T{ sources } + } + object ScalaPlugin extends Subproject { + def scalaVersion = T{ "2.12.4" } + + override def depClasspath = T{ Seq(Core.compiled()) } + override def ivyDeps = T{ Core.ivyDeps } + def basePath = T{ pwd / 'scalaplugin } + override def sources = T{ PathRef(pwd/'scalaplugin/'src/'main/'scala) } + override def resources = T{ sources } + } +} +@main def main(): Any = Build -> forge.discover.Discovered[Build.type] |