|
| 1 | +val scalaJSVersion = "1.0.0-SNAPSHOT" |
| 2 | + |
| 3 | +inThisBuild(Seq( |
| 4 | + version := "0.1.0-SNAPSHOT", |
| 5 | + organization := "org.scala-js", |
| 6 | + |
| 7 | + crossScalaVersions := Seq("2.10.6", "2.11.11", "2.12.2"), |
| 8 | + scalaVersion := "2.10.6", |
| 9 | + scalacOptions ++= Seq("-deprecation", "-feature", "-Xfatal-warnings"), |
| 10 | + |
| 11 | + homepage := Some(url("https://www.scala-js.org/")), |
| 12 | + licenses += ("BSD New", |
| 13 | + url("https://github.com/scala-js/scala-js-env-phantomjs/blob/master/LICENSE")), |
| 14 | + scmInfo := Some(ScmInfo( |
| 15 | + url("https://github.com/scala-js/scala-js-env-phantomjs"), |
| 16 | + "scm:git:git@github.com:scala-js/scala-js-env-phantomjs.git", |
| 17 | + Some("scm:git:git@github.com:scala-js/scala-js-env-phantomjs.git"))) |
| 18 | +)) |
| 19 | + |
| 20 | +val commonSettings = Def.settings( |
| 21 | + // Scaladoc linking |
| 22 | + apiURL := { |
| 23 | + val name = moduleName.value |
| 24 | + val v = version.value |
| 25 | + Some(url(s"https://www.scala-js.org/api/$name/$v/")) |
| 26 | + }, |
| 27 | + autoAPIMappings := true, |
| 28 | + |
| 29 | + publishMavenStyle := true, |
| 30 | + publishTo := { |
| 31 | + val nexus = "https://oss.sonatype.org/" |
| 32 | + if (isSnapshot.value) |
| 33 | + Some("snapshots" at nexus + "content/repositories/snapshots") |
| 34 | + else |
| 35 | + Some("releases" at nexus + "service/local/staging/deploy/maven2") |
| 36 | + }, |
| 37 | + pomExtra := ( |
| 38 | + <developers> |
| 39 | + <developer> |
| 40 | + <id>sjrd</id> |
| 41 | + <name>Sébastien Doeraene</name> |
| 42 | + <url>https://github.com/sjrd/</url> |
| 43 | + </developer> |
| 44 | + <developer> |
| 45 | + <id>gzm0</id> |
| 46 | + <name>Tobias Schlatter</name> |
| 47 | + <url>https://github.com/gzm0/</url> |
| 48 | + </developer> |
| 49 | + <developer> |
| 50 | + <id>nicolasstucki</id> |
| 51 | + <name>Nicolas Stucki</name> |
| 52 | + <url>https://github.com/nicolasstucki/</url> |
| 53 | + </developer> |
| 54 | + </developers> |
| 55 | + ), |
| 56 | + pomIncludeRepository := { _ => false } |
| 57 | +) |
| 58 | + |
| 59 | +lazy val root: Project = project.in(file(".")). |
| 60 | + settings( |
| 61 | + publishArtifact in Compile := false, |
| 62 | + publish := {}, |
| 63 | + publishLocal := {}, |
| 64 | + |
| 65 | + clean := clean.dependsOn( |
| 66 | + clean in `scalajs-phantomjs-env`, |
| 67 | + clean in `sbt-scalajs-env-phantomjs` |
| 68 | + ).value |
| 69 | + ) |
| 70 | + |
| 71 | +lazy val `scalajs-phantomjs-env`: Project = project.in(file("phantomjs-env")). |
| 72 | + settings( |
| 73 | + commonSettings, |
| 74 | + |
| 75 | + libraryDependencies ++= Seq( |
| 76 | + "org.scala-js" %% "scalajs-js-envs" % scalaJSVersion, |
| 77 | + "org.eclipse.jetty" % "jetty-websocket" % "8.1.16.v20140903" % "provided", |
| 78 | + "org.eclipse.jetty" % "jetty-server" % "8.1.16.v20140903" % "provided", |
| 79 | + |
| 80 | + "com.novocode" % "junit-interface" % "0.11" % "test", |
| 81 | + "org.scala-js" %% "scalajs-js-envs-test-kit" % scalaJSVersion % "test" |
| 82 | + ) |
| 83 | + ) |
| 84 | + |
| 85 | +lazy val `sbt-scalajs-env-phantomjs`: Project = project.in(file("phantomjs-sbt-plugin")). |
| 86 | + settings( |
| 87 | + commonSettings, |
| 88 | + |
| 89 | + sbtPlugin := true, |
| 90 | + scalaBinaryVersion := |
| 91 | + CrossVersion.binaryScalaVersion(scalaVersion.value), |
| 92 | + |
| 93 | + addSbtPlugin("org.scala-js" % "sbt-scalajs" % scalaJSVersion), |
| 94 | + |
| 95 | + // Add API mappings for sbt (seems they don't export their API URL) |
| 96 | + apiMappings ++= { |
| 97 | + val deps = (externalDependencyClasspath in Compile).value |
| 98 | + val sbtJars = deps filter { attributed => |
| 99 | + val p = attributed.data.getPath |
| 100 | + p.contains("/org.scala-sbt/") && p.endsWith(".jar") |
| 101 | + } |
| 102 | + val docUrl = |
| 103 | + url(s"http://www.scala-sbt.org/${sbtVersion.value}/api/") |
| 104 | + sbtJars.map(_.data -> docUrl).toMap |
| 105 | + } |
| 106 | + ). |
| 107 | + dependsOn(`scalajs-phantomjs-env`) |
0 commit comments