From 9b3093e19382ba4486e2abb2d282606f50db4287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20W=C3=A4chter?= Date: Mon, 14 Jun 2021 08:35:22 +0200 Subject: [PATCH] add support for Mill --- .mill-version | 1 + README.md | 30 +++++++++++++++++++++++++++++- build.sc | 13 +++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 .mill-version create mode 100644 build.sc diff --git a/.mill-version b/.mill-version new file mode 100644 index 0000000..e3e1807 --- /dev/null +++ b/.mill-version @@ -0,0 +1 @@ +0.9.8 diff --git a/README.md b/README.md index 58629f0..931686a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This repository is a base SBT project added to help non Scala/SBT native people Just one important note, you need a java JDK >= 8 -On debian : +On debian : ```sh sudo add-apt-repository -y ppa:openjdk-r/ppa @@ -109,3 +109,31 @@ And do the following : Normally, this must generate output file ```MyTopLevel.v```. +## Mill Support (Experimental) + +This Spinal Base Project contains support for the [Mill build tool](https://com-lihaoyi.github.io/mill). + +The prerequisites are the same as for using SBT, except for sbt itself. Additionally, the ```mill``` executable needs to be installed on the path. Download it to ```/usr/local/bin/mill``` or ```~/bin/mill``` according to the [installation instructions](https://com-lihaoyi.github.io/mill/mill/Intro_to_Mill.html#_installation). + +You can clone and use this repository in the following way. + +```sh +git clone https://github.com/SpinalHDL/SpinalTemplateSbt.git +``` + +Open a terminal in the root of it and execute your favorite mill command. At the first execution, the process could take some seconds + +```sh +cd SpinalTemplateSbt + +//If you want to generate the Verilog of your design +mill mylib.runMain mylib.MyTopLevelVerilog + +//If you want to generate the VHDL of your design +mill mylib.runMain mylib.MyTopLevelVhdl + +//If you want to run the scala written testbench +mill mylib.runMain mylib.MyTopLevelSim +``` + +The top level spinal code is defined into src\main\scala\mylib diff --git a/build.sc b/build.sc new file mode 100644 index 0000000..55c2fa3 --- /dev/null +++ b/build.sc @@ -0,0 +1,13 @@ +import mill._, scalalib._ + +val spinalVersion = "1.4.3" + +object mylib extends SbtModule { + def scalaVersion = "2.12.14" + override def millSourcePath = os.pwd + def ivyDeps = Agg( + ivy"com.github.spinalhdl::spinalhdl-core:$spinalVersion", + ivy"com.github.spinalhdl::spinalhdl-lib:$spinalVersion" + ) + def scalacPluginIvyDeps = Agg(ivy"com.github.spinalhdl::spinalhdl-idsl-plugin:$spinalVersion") +}