标签: cross-build

如何拥有多个Scala版本的SBT子项目?

我有一个使用Scala 2.10的项目和一个使用Scala 2.11的项目.它们依赖于一个可以用两者编译的通用项目.

lazy val foo = (project in file("foo")).dependsOn(baz).settings(
  scalaVersion := "2.10.4"
)

lazy val bar = (project in file("bar")).dependsOn(baz).settings(
  scalaVersion := "2.11.4"
)

lazy val baz = (project in file("baz")).settings(
  crossScalaVersions := Seq("2.10.4", "2.11.4"),
  scalaVersion := "2.10.4"
)
Run Code Online (Sandbox Code Playgroud)

然后

$ sbt bar/update
[info] Updating {file:/home/paul/Private/test/}bar...
[info] Resolving baz#baz_2.11;0.1-SNAPSHOT ...
[warn]  module not found: baz#baz_2.11;0.1-SNAPSHOT
[warn] ==== local: tried
[warn]   /home/paul/.ivy2/local/baz/baz_2.11/0.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/baz/baz_2.11/0.1-SNAPSHOT/baz_2.11-0.1-SNAPSHOT.pom
[info] Resolving jline#jline;2.12 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn] …
Run Code Online (Sandbox Code Playgroud)

scala sbt sbt-0.13 cross-build

12
推荐指数
2
解决办法
2382
查看次数

构建 mingw-w64 交叉编译器时启用线程本地存储

我已经尝试构建 mingw-w64 工具链好几天了,但我一直在构建交叉编译器 GCC 8.1.0。

问题是我必须启用线程本地存储 (TLS),因此我传递--enable-tls给 GCC 的配置脚本。

没有成功,因为在构建结束时,_GLIBCXX_HAVE_TLS在 中未定义config.h,对于 也是如此_GLIBCXX_HAVE_CC_TLS

我尝试浏览甚至修补自动工具文件以了解如何使其工作。

有人遇到过这个问题吗?

请注意,Windows 上的 mingw-w64 安装程序具有 TLS 符号,因此必须可以为此目标和 TLS 构建 GCC。

gcc thread-local-storage mingw-w64 cross-build

6
推荐指数
1
解决办法
683
查看次数

SBT:具有不同依赖项的两个 Scala 版本的交叉构建项目

我有以下用例。我想为 Scala 2.10 和 2.12 构建相同的 Scala 项目。这样做时,我想为 2.10 版本指定一些依赖项,而我想在 2.12 的 jar 中编译这些依赖项。

我正在查看 SBT 的文档,发现如何将 a 拆分build.sbt为单独的声明,但这些声明总是被提及为sub-modules。就我而言,我想交叉构建整个应用程序 - 而不是它的特定部分。

任何提示或资源将不胜感激。

scala sbt cross-build

5
推荐指数
1
解决办法
1238
查看次数

SBT Scala交叉版本,具有聚合和依赖性

我正在努力crossScalaVersions解决子项目的工作原理.

我有一个用2.10(foo)编译的项目和一个用2.11(bar)编译的项目.他们共享一个交叉编译的项目(常见).

如何编译项目foo和bar?


build.sbt

lazy val root = (project in file(".")).aggregate(foo, bar).settings(
  crossScalaVersions := Seq("2.10.4", "2.11.4")
)

lazy val foo = (project in file("foo")).dependsOn(common).settings(
  crossScalaVersions := Seq("2.10.4"),
  scalaVersion := "2.10.4"
)

lazy val bar = (project in file("bar")).dependsOn(common).settings(
  crossScalaVersions := Seq("2.11.4"),
  scalaVersion := "2.11.4"
)

lazy val common = (project in file("common")).settings(
  crossScalaVersions := Seq("2.10.4", "2.11.4")
)
Run Code Online (Sandbox Code Playgroud)

项目/ build.properties

sbt.version=0.13.7
Run Code Online (Sandbox Code Playgroud)

富/ SRC /主/阶/ Foo.scala

object Foo {
  <xml>{new C}</xml>
}
Run Code Online (Sandbox Code Playgroud)

酒吧/ SRC /主/阶/ Bar.scala

case class Bar(a: C, …
Run Code Online (Sandbox Code Playgroud)

scala sbt sbt-0.13 cross-build

4
推荐指数
1
解决办法
1000
查看次数