51 "-unchecked", // Enable additional warnings where generated code depends on assumptions. |
51 "-unchecked", // Enable additional warnings where generated code depends on assumptions. |
52 "-Xcheckinit", // Wrap field accessors to throw an exception on uninitialized access. |
52 "-Xcheckinit", // Wrap field accessors to throw an exception on uninitialized access. |
53 "-Xfuture", // Turn on future language features. |
53 "-Xfuture", // Turn on future language features. |
54 "-target:jvm-1.8", |
54 "-target:jvm-1.8", |
55 )} |
55 )} |
|
56 |
|
57 def hgId: Input[String] = T.input { |
|
58 os.proc("hg", "id", "-i").call().out.string.trim |
|
59 } |
56 } |
60 } |
57 |
61 |
58 object base extends Common { |
62 trait Versions { |
|
63 //val bootstrap = "4.1.3" |
|
64 val bootstrap = "3.3.7" |
|
65 val fontAwesome = "5.5.0" |
|
66 val jquery = "3.3.1-1" |
|
67 } |
|
68 |
|
69 object base extends Common with Versions { |
59 override def scalacPluginIvyDeps: Target[Loose.Agg[Dep]] = super.scalacPluginIvyDeps() ++ Agg( |
70 override def scalacPluginIvyDeps: Target[Loose.Agg[Dep]] = super.scalacPluginIvyDeps() ++ Agg( |
60 ivy"org.scalamacros:::paradise:2.1.0" |
71 ivy"org.scalamacros:::paradise:2.1.0" |
61 ) |
72 ) |
62 |
73 |
63 override def ivyDeps = Agg( |
74 override def ivyDeps = Agg( |
65 ivy"de.heikoseeberger::akka-http-json4s:1.22.0", |
76 ivy"de.heikoseeberger::akka-http-json4s:1.22.0", |
66 ivy"com.typesafe.akka::akka-slf4j:$akkaVer", |
77 ivy"com.typesafe.akka::akka-slf4j:$akkaVer", |
67 ivy"org.json4s::json4s-native:3.6.2", |
78 ivy"org.json4s::json4s-native:3.6.2", |
68 ivy"ch.qos.logback:logback-classic:1.2.3", |
79 ivy"ch.qos.logback:logback-classic:1.2.3", |
69 ivy"com.lihaoyi::scalatags:0.6.7", |
80 ivy"com.lihaoyi::scalatags:0.6.7", |
70 ivy"org.webjars:bootstrap:4.1.3", |
81 ivy"org.webjars:bootstrap:$bootstrap", |
71 ivy"org.webjars:font-awesome:5.5.0" |
82 ivy"org.webjars:font-awesome:$fontAwesome", |
|
83 ivy"org.webjars:jquery:$jquery" |
72 ) |
84 ) |
73 |
85 |
74 override def scalacOptions = T{super.scalacOptions.map(_ :+ |
86 override def scalacOptions = T{super.scalacOptions.map(_ :+ |
75 "-Xmacro-settings:conf.output.dir=base/resources" |
87 "-Xmacro-settings:conf.output.dir=base/resources" |
76 )} |
88 )} |
|
89 |
|
90 override def generatedSources: Target[Seq[PathRef]] = T{ |
|
91 val dir = T.ctx().dest |
|
92 write(dir / "buildInfo.scala", |
|
93 s""" |
|
94 | package sqwl.cms |
|
95 | object BuildInfo { |
|
96 | object versions { |
|
97 | val bootstrap = "$bootstrap" |
|
98 | val fontAwesome = "$fontAwesome" |
|
99 | val jquery = "$jquery" |
|
100 | } |
|
101 | |
|
102 | val hgId = "${hgId()}" |
|
103 | } |
|
104 """.stripMargin) |
|
105 Seq(PathRef(dir)) |
|
106 } |
77 |
107 |
78 } |
108 } |
79 |
109 |
80 object content extends Common { |
110 object content extends Common { |
81 override def moduleDeps = Seq(base) |
111 override def moduleDeps = Seq(base) |