From bf72e4341b5478f3e8416781a2f03a0d5b6a6841 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Wed, 7 Mar 2018 22:05:36 -0800 Subject: Add support for Scala Native --- build.sbt | 21 +++++++++++++++++---- project/plugins.sbt | 5 ++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/build.sbt b/build.sbt index 9bd5cad..be6a2a5 100644 --- a/build.sbt +++ b/build.sbt @@ -1,24 +1,39 @@ +// 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( + crossScalaVersions := "2.12.4" :: "2.11.12" :: Nil, + scalaVersion := crossScalaVersions.value.head + ) + .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") + .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")) @@ -39,7 +54,6 @@ lazy val tests = project - lazy val benchmarks = project .in(file("benchmarks")) .settings(buildSettings: _*) @@ -48,7 +62,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( diff --git a/project/plugins.sbt b/project/plugins.sbt index 595dbcc..baee37a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,4 +2,7 @@ addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.1") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.21") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.21") +addSbtPlugin("org.portable-scala" % "sbt-crossproject" % "0.3.1") +addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "0.3.1") +addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.6") \ No newline at end of file -- cgit v1.2.3 From aca218bbf44b66635974ebf7de20be57eb5d5025 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Wed, 7 Mar 2018 22:13:55 -0800 Subject: Add aggregate root project and travis build configuration --- .travis.yml | 11 +++++++++++ CHANGES | 4 ++++ build.sbt | 7 ++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..330ebe3 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,11 @@ +sudo: required +dist: trusty +language: scala + +before_install: +- curl https://raw.githubusercontent.com/scala-native/scala-native/9069e8d447f7a9a5439bffbb6a706b5cc70bd631/bin/travis_setup.sh | bash -x + +script: + - sbt +compile +jdk: + - oraclejdk8 diff --git a/CHANGES b/CHANGES index deed80f..251f5c0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,9 @@ # Changelog +## v0.7.1 +- Support compilation for Scala Native +- Add travis build configuration + ## v0.7.0 - Fix regression related to deriving inner classes - Fix for derivations of case classes with alternative factory methods diff --git a/build.sbt b/build.sbt index be6a2a5..42ada89 100644 --- a/build.sbt +++ b/build.sbt @@ -52,7 +52,12 @@ lazy val tests = project ) .dependsOn(examplesJVM) - +lazy val root = (project in file(".")) + .aggregate(coreJVM, coreJS, coreNative, examplesJVM, examplesJS, examplesNative) + .settings( + publish := {}, + publishLocal := {} + ) lazy val benchmarks = project .in(file("benchmarks")) -- cgit v1.2.3 From 0646f756a24caac5bc6c77ec624428161d4348f2 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Wed, 7 Mar 2018 22:40:02 -0800 Subject: Compile for Scala 2.13.0-M3 --- .travis.yml | 2 +- build.sbt | 19 ++++++++++++++++--- project/build.properties | 2 +- project/plugins.sbt | 2 +- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 330ebe3..5575c91 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,6 +6,6 @@ before_install: - curl https://raw.githubusercontent.com/scala-native/scala-native/9069e8d447f7a9a5439bffbb6a706b5cc70bd631/bin/travis_setup.sh | bash -x script: - - sbt +compile + - sbt +compile +tests/run jdk: - oraclejdk8 diff --git a/build.sbt b/build.sbt index 42ada89..8a2a8c3 100644 --- a/build.sbt +++ b/build.sbt @@ -9,11 +9,16 @@ lazy val core = crossProject(JVMPlatform, JSPlatform, NativePlatform) .settings(scalaMacroDependencies: _*) .settings(moduleName := "magnolia") .settings( - crossScalaVersions := "2.12.4" :: "2.11.12" :: Nil, 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, + crossScalaVersions := "2.11.12" :: Nil ) lazy val coreJVM = core.jvm @@ -25,6 +30,14 @@ lazy val examples = crossProject(JVMPlatform, JSPlatform, NativePlatform) .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 @@ -53,7 +66,7 @@ lazy val tests = project .dependsOn(examplesJVM) lazy val root = (project in file(".")) - .aggregate(coreJVM, coreJS, coreNative, examplesJVM, examplesJS, examplesNative) + .aggregate(coreJVM, coreJS, coreNative, examplesJVM, examplesJS, examplesNative, tests) .settings( publish := {}, publishLocal := {} diff --git a/project/build.properties b/project/build.properties index 8b697bb..31334bb 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.1.0 +sbt.version=1.1.1 diff --git a/project/plugins.sbt b/project/plugins.sbt index baee37a..4db006e 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,7 +2,7 @@ addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.1") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1") -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.21") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.22") addSbtPlugin("org.portable-scala" % "sbt-crossproject" % "0.3.1") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "0.3.1") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.6") \ No newline at end of file -- cgit v1.2.3