对于具有外部依赖项的跨平台、多语言库,构建环境应该是什么样的?

发布于 2024-10-28 07:10:54 字数 459 浏览 5 评论 0原文

我正在研究启动一个具有以下所需要求的小型库:

  1. 3 种平台上本地构建:Linux、Windows、OS X
  2. 具有3 种动态语言的绑定:Python、 Ruby、Lua
  3. 依赖于外部项目的代码:clutter、cairo、pango

有没有办法创建一个以某种方式绕过外部库构建系统的构建环境?

天真的用例是只下载库源代码,让源代码中的脚本下载依赖项的源代码并在需要时修补内容,然后使用本机环境(OS X 上的 XCode)在一个命令中构建所有内容、Windows 上的 Visual Studio Express 和 Linux 上的 GCC)。

最终的库应该静态链接所有依赖项。

我有什么选择?我应该如何最好地处理这个问题? 任何教程或有用的链接都值得赞赏。

先感谢您! :)

I'm researching into starting a small library with the following desired requirements:

  1. builds natively on 3 platforms: Linux, Windows, OS X
  2. has bindings for 3 dynamic languages: Python, Ruby, Lua
  3. relies on code from external projects: clutter, cairo, pango

Is there a way to create a build environment that will somehow bypass the external libraries build system?

The naive use case would be to just download the library source code, have a script inside the source code download the dependencies' source code and patch things if need be, then just build everything in one command using the native environment (XCode on OS X, Visual Studio Express on Windows and GCC on Linux).

The final library should have all the dependencies statically linked.

What are my options? How should I best approach this?
Any tutorials or useful links are appreciated.

Thank you in advance! :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

守护在此方 2024-11-04 07:10:54

我会看一下 http://jenkins-ci.org/ (以前的 Hudson)。

它是为持续集成而设计的,但副作用是有一个非常灵活的构建作业配置引擎,可以调用各种构建工具。

它还具有从属节点的概念以及将特定作业与这些节点相关联,因此您可以将与适当操作系统上的从属节点相关联的一系列构建作业放在一起,这些操作系统使用每种语言的最佳品种构建工具。

I would take a look at http://jenkins-ci.org/ (formerly Hudson).

Its designed for continuous integration, but as a side effect have a tremendously flexible build job configuration engine that can invoke a variety of build tools.

It also has the concept of slave nodes and associating specific jobs with those nodes, so you can put together a sequence of build jobs that are associated with slave nodes on the appropriate OS's that use best of breed build tools for each language.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文