|
1 /* |
|
2 * REPL: |
|
3 * |
|
4 * ./mill --repl -w |
|
5 * |
|
6 * Generate Idea project: |
|
7 * |
|
8 * ./mill mill.scalalib.GenIdea/idea |
|
9 * |
|
10 */ |
|
11 |
1 import mill._ |
12 import mill._ |
2 import mill.api.Loose |
13 import mill.api.Loose |
3 import mill.define.{Command, Target} |
14 import mill.define.{Command, Target} |
4 import mill.scalajslib._ |
15 import mill.scalajslib._ |
5 import mill.scalalib._ |
16 import mill.scalalib._ |
6 import mill.scalalib.publish._ |
17 import mill.scalalib.publish._ |
7 |
18 |
8 object V { |
19 object V { |
9 val visjs = "0.3-SNAPSHOT" |
20 val visjs = "0.3-SNAPSHOT" |
10 val scalaJs = "0.6.28" |
21 val scalaJs = "1.12.0" |
11 val scala211 = "2.11.12" |
22 val scala211 = "2.11.12" |
12 val scala212 = "2.12.9" |
23 val scala212 = "2.12.17" |
|
24 val scala213 = "2.13.10" |
13 } |
25 } |
14 |
26 |
15 object D { |
27 object D { |
16 val scalaJsDom = ivy"org.scala-js::scalajs-dom::0.9.7" |
28 val scalaJsDom = ivy"org.scala-js::scalajs-dom::2.3.0" |
17 } |
29 } |
18 |
30 |
19 class VisJs(val crossScalaVersion: String) extends CrossScalaModule with |
31 class VisJs(val crossScalaVersion: String) extends CrossScalaModule with |
20 ScalaJSModule with PublishModule { |
32 ScalaJSModule with PublishModule { |
21 |
33 |
41 "-deprecation", // Emit warning and location for usages of deprecated APIs. |
53 "-deprecation", // Emit warning and location for usages of deprecated APIs. |
42 "-encoding", "utf-8", // Specify character encoding used by source files. |
54 "-encoding", "utf-8", // Specify character encoding used by source files. |
43 "-explaintypes", // Explain type errors in more detail. |
55 "-explaintypes", // Explain type errors in more detail. |
44 "-feature", // Emit warning and location for usages of features that should be imported explicitly. |
56 "-feature", // Emit warning and location for usages of features that should be imported explicitly. |
45 "-language:higherKinds", // Allow higher-kinded types |
57 "-language:higherKinds", // Allow higher-kinded types |
46 "-language:implicitConversions", // Allow definition of implicit functions called views |
|
47 "-language:reflectiveCalls", |
|
48 "-language:postfixOps", |
|
49 "-unchecked", // Enable additional warnings where generated code depends on assumptions. |
58 "-unchecked", // Enable additional warnings where generated code depends on assumptions. |
50 "-Xcheckinit", // Wrap field accessors to throw an exception on uninitialized access. |
59 "-Xcheckinit" // Wrap field accessors to throw an exception on uninitialized access. |
51 "-Xfuture", // Turn on future language features. |
|
52 "-target:jvm-1.8", |
|
53 "-P:scalajs:sjsDefinedByDefault" |
|
54 )} |
60 )} |
55 |
61 |
56 override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(D.scalaJsDom) |
62 override def ivyDeps: Target[Loose.Agg[Dep]] = Agg(D.scalaJsDom) |
57 |
63 |
58 } |
64 } |
59 |
65 |
60 object visjs extends Cross[VisJs](V.scala211, V.scala212) |
66 object visjs extends Cross[VisJs](V.scala211, V.scala212, V.scala213) |
|
67 |
|
68 def compileAll(): Command[Unit] = T.command{ |
|
69 visjs(V.scala211).compile() |
|
70 visjs(V.scala212).compile() |
|
71 visjs(V.scala213).compile() |
|
72 () |
|
73 } |
61 |
74 |
62 def publishLocal(): Command[Unit] = T.command{ |
75 def publishLocal(): Command[Unit] = T.command{ |
63 visjs(V.scala211).publishLocal()() |
76 visjs(V.scala211).publishLocal()() |
64 visjs(V.scala212).publishLocal()() |
77 visjs(V.scala212).publishLocal()() |
|
78 visjs(V.scala213).publishLocal()() |
65 () |
79 () |
66 } |
80 } |
67 |
81 |
68 def publishM2Local(p: os.Path): Command[Unit] = T.command{ |
82 def publishM2Local(p: os.Path): Command[Unit] = T.command{ |
69 visjs(V.scala211).publishM2Local(p.toString)() |
83 visjs(V.scala211).publishM2Local(p.toString)() |
70 visjs(V.scala212).publishM2Local(p.toString)() |
84 visjs(V.scala212).publishM2Local(p.toString)() |
|
85 visjs(V.scala213).publishM2Local(p.toString)() |
71 () |
86 () |
72 } |
87 } |
73 |
88 |
74 // vim: et ts=2 sw=2 syn=scala |
89 // vim: et ts=2 sw=2 syn=scala |