cvogt / cbt

CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala
Other
488 stars 60 forks source link

Does CBT support cross building against multiple scala-js/scala-native versions? #544

Open mdedetrich opened 7 years ago

mdedetrich commented 7 years ago

Due to https://github.com/scala-native/sbt-crossproject/issues/47, I am investigating using CBT for https://github.com/mdedetrich/scalajson to simplify the build.

For context, ScalaJSON is designed to be ultra stable and release new versions as infrequently as possible, which means that when a new scala-js version comes out (as an example), I want to be able to release ScalaJSON for this new version of scala-js without having to bump the version of ScalaJSON.

Is this possible right now? And if not is it on the roadmap (especially for 1.0.0 release?) I see this as a killer feature over SBT, as this current limitation in SBT is going to really complicate the build for scalaJSON (have to basically override settings in the build files with environment variables which is quite ugly)

cvogt commented 7 years ago

There is no scala-native plugin right now (https://github.com/cvogt/cbt/issues/473). Shouldn't be hard to add though.

@shanedelmore and I are working on an extended cross build example (and possibly some minor bug fixes).

cvogt commented 7 years ago

Or in short: Yes this should totally be possible, but hasn't been tested very well right now. Basically the idea is creating a Seq of builds, which are different subclasses of the same build with different customizations. Calling a task on the Seq from bash, e.g. cbt configs.package will run package for each of them.