build.sc
changeset 5 de7c56ce0654
parent 4 1a1347e8c5be
child 16 4556852613a9
equal deleted inserted replaced
4:1a1347e8c5be 5:de7c56ce0654
    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)