aboutsummaryrefslogtreecommitdiff
path: root/build.sbt
diff options
context:
space:
mode:
Diffstat (limited to 'build.sbt')
-rw-r--r--build.sbt41
1 files changed, 36 insertions, 5 deletions
diff --git a/build.sbt b/build.sbt
index 9bd5cad..8a2a8c3 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,24 +1,52 @@
+// shadow sbt-scalajs' crossProject and CrossType until Scala.js 1.0.0 is released
+import sbtcrossproject.{crossProject, CrossType}
import com.typesafe.sbt.pgp.PgpKeys.publishSigned
-lazy val core = crossProject
+lazy val core = crossProject(JVMPlatform, JSPlatform, NativePlatform)
.in(file("core"))
.settings(buildSettings: _*)
.settings(publishSettings: _*)
.settings(scalaMacroDependencies: _*)
.settings(moduleName := "magnolia")
+ .settings(
+ scalaVersion := crossScalaVersions.value.head
+ )
+ .jvmSettings(
+ crossScalaVersions := "2.12.4" :: "2.13.0-M3" :: "2.11.12" :: Nil
+ )
+ .jsSettings(
+ crossScalaVersions := "2.12.4" :: "2.11.12" :: Nil
+ )
+ .nativeSettings(
+ crossScalaVersions := "2.11.12" :: Nil
+ )
lazy val coreJVM = core.jvm
lazy val coreJS = core.js
+lazy val coreNative = core.native
-lazy val examples = crossProject
+lazy val examples = crossProject(JVMPlatform, JSPlatform, NativePlatform)
.in(file("examples"))
.settings(buildSettings: _*)
.settings(publishSettings: _*)
.settings(moduleName := "magnolia-examples")
+ .jvmSettings(
+ crossScalaVersions := (crossScalaVersions in coreJVM).value,
+ scalaVersion := (scalaVersion in coreJVM).value
+ )
+ .jsSettings(
+ crossScalaVersions := (crossScalaVersions in coreJS).value,
+ scalaVersion := (scalaVersion in coreJS).value
+ )
+ .nativeSettings(
+ crossScalaVersions := (crossScalaVersions in coreNative).value,
+ scalaVersion := (scalaVersion in coreNative).value
+ )
.dependsOn(core)
lazy val examplesJVM = examples.jvm
lazy val examplesJS = examples.js
+lazy val examplesNative = examples.native
lazy val tests = project
.in(file("tests"))
@@ -37,8 +65,12 @@ lazy val tests = project
)
.dependsOn(examplesJVM)
-
-
+lazy val root = (project in file("."))
+ .aggregate(coreJVM, coreJS, coreNative, examplesJVM, examplesJS, examplesNative, tests)
+ .settings(
+ publish := {},
+ publishLocal := {}
+ )
lazy val benchmarks = project
.in(file("benchmarks"))
@@ -48,7 +80,6 @@ lazy val benchmarks = project
lazy val buildSettings = Seq(
organization := "com.propensive",
- crossScalaVersions := Seq("2.11.11", "2.12.4"),
name := "magnolia",
version := "0.7.1",
scalacOptions ++= Seq(