对于具有外部依赖项的跨平台、多语言库,构建环境应该是什么样的?
我正在研究启动一个具有以下所需要求的小型库:
- 在 3 种平台上本地构建:Linux、Windows、OS X
- 具有3 种动态语言的绑定:Python、 Ruby、Lua
- 依赖于外部项目的代码: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:
- builds natively on 3 platforms: Linux, Windows, OS X
- has bindings for 3 dynamic languages: Python, Ruby, Lua
- 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我会看一下 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.