import scala.scalajs.sbtplugin.ScalaJSPlugin._ import ScalaJSKeys._ lazy val scalatexApi = project.in(file("scalatexApi")) .settings( scalaVersion := "2.11.4", libraryDependencies ++= Seq( "com.lihaoyi" %% "utest" % "0.2.4", "com.scalatags" %% "scalatags" % "0.4.2", "org.scala-lang" % "scala-reflect" % scalaVersion.value, "com.lihaoyi" %% "acyclic" % "0.1.2" % "provided", "org.parboiled" %% "parboiled" % "2.0.1" ), addCompilerPlugin("com.lihaoyi" %% "acyclic" % "0.1.2"), testFrameworks += new TestFramework("utest.runner.JvmFramework") ) lazy val scalatexPlugin = Project( id = "scalatexPlugin", base = file("scalatexPlugin"), dependencies = Seq(scalatexApi) ) settings ( scalaVersion := "2.11.4", libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value, publishArtifact in Compile := false ) lazy val book = Project( id = "book", base = file("book"), dependencies = Seq(scalatexApi) ).settings( scalaVersion := "2.11.4", libraryDependencies ++= Seq( "org.webjars" % "highlightjs" % "8.2-1", "org.webjars" % "pure" % "0.5.0", "org.webjars" % "font-awesome" % "4.2.0", "org.webjars" % "react" % "0.11.1", "org.scala-lang" % "scala-reflect" % scalaVersion.value, "org.scala-lang" % "scala-compiler" % scalaVersion.value, "org.eclipse.jgit" % "org.eclipse.jgit" % "3.5.1.201410131835-r", "com.lihaoyi" %%% "upickle" % "0.2.5" ), (resources in Compile) += { (fullOptJS in (demos, Compile)).value (artifactPath in (demos, Compile, fullOptJS)).value }, (unmanagedResourceDirectories in Compile) ++= (unmanagedResourceDirectories in (demos, Compile)).value, scalacOptions in Compile ++= { val jar = (Keys.`package` in (scalatexPlugin, Compile)).value val addPlugin = "-Xplugin:" + jar.getAbsolutePath // add plugin timestamp to compiler options to trigger recompile of // main after editing the plugin. (Otherwise a 'clean' is needed.) val dummy = "-Jdummy=" + jar.lastModified val options = "-P:scalatex-options:" + sourceDirectory.value / "scalatex" Seq(addPlugin, dummy) }, watchSources ++= { ((sourceDirectory in Compile).value / "scalatex" ** "*.scalatex").get }, (watchSources in Test) ++= { ((sourceDirectory in Test).value / "scalatex" ** "*.scalatex").get }, libraryDependencies += "com.lihaoyi" %% "acyclic" % "0.1.2" % "provided", autoCompilerPlugins := true, addCompilerPlugin("com.lihaoyi" %% "acyclic" % "0.1.2") ) lazy val demos = project.in(file("examples/demos")) lazy val simple = project.in(file("examples/crossBuilds/simple")) lazy val simple2 = project.in(file("examples/crossBuilds/simple2")) lazy val clientserver = project.in(file("examples/crossBuilds/clientserver")) lazy val client = ProjectRef(file("examples/crossBuilds/clientserver"), "client") lazy val server = ProjectRef(file("examples/crossBuilds/clientserver"), "server") lazy val clientserver2 = project.in(file("examples/crossBuilds/clientserver2")) lazy val client2 = ProjectRef(file("examples/crossBuilds/clientserver2"), "client") lazy val server2 = ProjectRef(file("examples/crossBuilds/clientserver2"), "server")