diff -r 48479e4b89d4 -r 1a1347e8c5be build.sc --- a/build.sc Thu Nov 22 13:15:29 2018 +0100 +++ b/build.sc Thu Nov 29 12:20:20 2018 +0100 @@ -55,7 +55,7 @@ )} } -object jvm extends Common { +object base extends Common { override def scalacPluginIvyDeps: Target[Loose.Agg[Dep]] = super.scalacPluginIvyDeps() ++ Agg( ivy"org.scalamacros:::paradise:2.1.0" ) @@ -72,11 +72,34 @@ ) override def scalacOptions = T{super.scalacOptions.map(_ :+ - "-Xmacro-settings:conf.output.dir=jvm/resources" + "-Xmacro-settings:conf.output.dir=base/resources" )} - override def mainClass = Some("sqwl.cms.Server") +} + +object content extends Common { + override def moduleDeps = Seq(base) + override def sources : Sources = T.sources{ millSourcePath / up / 'example / 'src } + override def ivyDeps = Agg( + ivy"com.beachape::enumeratum:1.5.13" + ) +} +object app extends Common { + override def moduleDeps = Seq(content) + override def mainClass = Some("sqwl.cms.Main") + + override def generatedSources: Target[Seq[PathRef]] = T{ + val dir = T.ctx().dest + write(dir / "main.scala", + """ + | package sqwl.cms + | object Main extends Server { + | override def content: iContent = Content + | } + """.stripMargin) + Seq(PathRef(dir)) + } } object js extends Common with ScalaJSModule {