@@ -24,6 +24,7 @@ lazy val root = project
24
24
.aggregate(
25
25
compat211JVM,
26
26
compat211JS,
27
+ compat211Native,
27
28
compat212JVM,
28
29
compat212JS,
29
30
compat213JVM,
@@ -60,17 +61,17 @@ scalaVersionsByJvm in ThisBuild := {
60
61
}
61
62
62
63
/** Create an OSGi version range for standard Scala versioning
63
- * schemes that describes binary compatible versions. */
64
+ * schemes that describes binary compatible versions. */
64
65
def osgiVersionRange (version : String , requireMicro : Boolean = false ): String =
65
- if (version contains '-' ) " ${@}" // M, RC or SNAPSHOT -> exact version
66
- else if (requireMicro) " ${range;[===,=+)}" // At least the same micro version
66
+ if (version contains '-' ) " ${@}" // M, RC or SNAPSHOT -> exact version
67
+ else if (requireMicro) " ${range;[===,=+)}" // At least the same micro version
67
68
else " ${range;[==,=+)}" // Any binary compatible version
68
69
69
70
/** Create an OSGi Import-Package version specification. */
70
71
def osgiImport (pattern : String , version : String , requireMicro : Boolean = false ): String =
71
72
pattern + " ;version=\" " + osgiVersionRange(version, requireMicro) + " \" "
72
73
73
- lazy val compat = MultiScalaCrossProject (JSPlatform , JVMPlatform )(
74
+ lazy val compat = MultiScalaCrossProject (JSPlatform , JVMPlatform , NativePlatform )(
74
75
" compat" ,
75
76
_.settings(scalaModuleSettings)
76
77
.settings(commonSettings)
@@ -90,7 +91,8 @@ lazy val compat = MultiScalaCrossProject(JSPlatform, JVMPlatform)(
90
91
if (scalaVersion.value.startsWith(" 2.13." ))
91
92
Seq (s " scala.collection.compat.*;version= ${version.value}" )
92
93
else
93
- Seq (s " scala.collection.compat.*;version= ${version.value},scala.jdk.*;version= ${version.value}" )
94
+ Seq (
95
+ s " scala.collection.compat.*;version= ${version.value},scala.jdk.*;version= ${version.value}" )
94
96
},
95
97
OsgiKeys .importPackage := Seq (osgiImport(" *" , scalaBinaryVersion.value)),
96
98
OsgiKeys .privatePackage := Nil ,
@@ -109,18 +111,25 @@ lazy val compat = MultiScalaCrossProject(JSPlatform, JVMPlatform)(
109
111
)
110
112
.jsConfigure(_.enablePlugins(ScalaJSJUnitPlugin ))
111
113
.disablePlugins(ScalafixPlugin )
114
+ .nativeSettings(
115
+ crossScalaVersions := List (scala211),
116
+ scalaVersion := scala211, // allows to compile if scalaVersion set not 2.11
117
+ nativeLinkStubs := true ,
118
+ Test / test := {}
119
+ )
112
120
)
113
121
114
122
val compat211 = compat(scala211)
115
123
val compat212 = compat(scala212)
116
124
val compat213 = compat(scala213)
117
125
118
- lazy val compat211JVM = compat211.jvm
119
- lazy val compat211JS = compat211.js
120
- lazy val compat212JVM = compat212.jvm
121
- lazy val compat212JS = compat212.js
122
- lazy val compat213JVM = compat213.jvm
123
- lazy val compat213JS = compat213.js
126
+ lazy val compat211JVM = compat211.jvm
127
+ lazy val compat211JS = compat211.js
128
+ lazy val compat211Native = compat211.native
129
+ lazy val compat212JVM = compat212.jvm
130
+ lazy val compat212JS = compat212.js
131
+ lazy val compat213JVM = compat213.jvm
132
+ lazy val compat213JS = compat213.js
124
133
125
134
lazy val `binary-compat-old` = project
126
135
.in(file(" binary-compat/old" ))
@@ -285,6 +294,7 @@ val preRelease = "preRelease"
285
294
val travisScalaVersion = sys.env.get(" TRAVIS_SCALA_VERSION" ).flatMap(Version .parse)
286
295
val releaseVersion = sys.env.get(" TRAVIS_TAG" ).flatMap(Version .parse)
287
296
val isScalaJs = sys.env.get(" SCALAJS_VERSION" ).map(_.nonEmpty).getOrElse(false )
297
+ val isScalaNative = sys.env.get(" SCALANATIVE_VERSION" ).map(_.nonEmpty).getOrElse(false )
288
298
val isScalafix = sys.env.get(" TEST_SCALAFIX" ).nonEmpty
289
299
val isScalafmt = sys.env.get(" TEST_SCALAFMT" ).nonEmpty
290
300
val isBinaryCompat = sys.env.get(" TEST_BINARY_COMPAT" ).nonEmpty
@@ -342,13 +352,14 @@ inThisBuild(
342
352
" TRAVIS_SCALA_VERSION" ,
343
353
" TRAVIS_TAG" ,
344
354
" SCALAJS_VERSION" ,
355
+ " SCALANATIVE_VERSION" ,
345
356
" TEST_SCALAFIX" ,
346
357
" TEST_SCALAFMT" ,
347
358
" TEST_BINARY_COMPAT"
348
359
).foreach(k =>
349
360
println(k.padTo(20 , " " ).mkString(" " ) + " -> " + sys.env.get(k).getOrElse(" None" )))
350
361
351
- val platformSuffix = if (isScalaJs) " JS" else " "
362
+ val platformSuffix = if (isScalaJs) " JS" else if (isScalaNative) " Native " else " "
352
363
353
364
val compatProject = " compat" + travisScalaVersion.get.binary + platformSuffix
354
365
val binaryCompatProject = " binary-compat"
@@ -387,7 +398,7 @@ inThisBuild(
387
398
Seq (
388
399
setPublishVersion,
389
400
List (s " $projectPrefix/clean " ),
390
- List (s " $testProjectPrefix/test " ),
401
+ if (isScalaNative) List () else List (s " $testProjectPrefix/test " ),
391
402
List (s " $projectPrefix/publishLocal " ),
392
403
publishTask
393
404
).flatten
0 commit comments