I'm writing a cross-compiled library between JSPlatform and JVMPlatform using sbt-scalajs-crossproject. I've explicitly set scalaVersion in common settings and yet:
sbt:oatlibxp> show scalaVersion
[info] oatlibxpJS / scalaVersion
[info] 2.13.11
[info] oatlibxpJVM / scalaVersion
[info] 2.13.11
[info] scalaVersion
[info] 2.12.18 <<---- WHY?
Why is the last one (the default project) different from the others? For what it's worth, the values for version, scalacOptions, etc are also different.
Here is my build.sbt (I've removed some settings like libraryDependencies that I think are not relevant):
val sharedSettings = Seq(
version := "3.0.0-SNAPSHOT",
name := "oatLibXP",
scalaVersion := "2.13.11",
scalacOptions ++= Seq("-feature", "-deprecation", "-unchecked"),
)
lazy val oatlibxp = crossProject(JSPlatform, JVMPlatform)
.crossType(CrossType.Full)
.in(file("."))
.settings(sharedSettings)
And my directory structure:
% tree -d -L 3 -I target
.
├── js
│ └── src
│ └── main
├── jvm
│ └── src
│ ├── main
│ └── test
├── project
│ └── project
└── shared
└── src
├── main
└── test
14 directories
Version numbers:
- sbt: 1.9.0
- sbt-scalajs-crossproject: 1.2.0
- sbt-scalajs: 1.13.0