Jan*_*dec 8 c++ build-automation build multiplatform
我们有一个针对多个移动平台的复杂C++代码库.我们目前有Windows CE(原始CE和移动版本为4.2到6.5),Android(2.1 +),iPhone(4 +),几乎可以使用Bada(2.0+),如果有新的C++/CX,可能会添加Windows Phone(8+).加上Win32上的测试版和Win64 上的服务应用程序共享一些代码.我们也已经尝试在Linux上编译单元测试,并且已经出现了问题(到目前为止业务量太小,但可能会有所改变),以使其在其他Linux平台上运行.
我们目前使用每个平台的本机工具编译代码.它们中的每一个都非常复杂,并且在其中或周围有一些黑客可以实现合理的单击构建.而对于Bada来说,我们还没有解决三星调整过的Eclipse之外的版本,我们必须为生产做些什么.
到目前为止它的工作原理,但正在变得越来越多的维护问题.目前最大的问题是iPhone构建,因为与Visual Studio项目文件和普通makefile不同,它不可能手动添加/删除/重命名XCode项目中的文件,只有两个人拥有MacOS boxen和任何XCode的经验(虽然每个人都有Windows并且知道Visual Studio).我们还需要为Bada目标创建一些makefile(它是普通的GNU工具链,所以任何能够与那些交叉编译的东西都应该这样做)并且我不会在中期摆脱Android构建中的一些kludges:修复bug在cygwin下构建时的依赖性处理,在ant构建脚本和shell胶水之上的一些hacks按摩清单并将它们保持在一起.
因此,我正在寻找有关如何统一这组不同平台的构建过程的建议.
对于其他我准备解决任何缺陷的事情,但我显然希望保持壳管胶带和吐出的量最小,所以它应该:
到目前为止,我们已经开始尝试CMake(没有太多时间,因此没有达到目标,但很快就要做一些事情)并且还考虑了SCons.但是几年前我已经尝试使用SCons for Windows CE构建,但是因为它为Visual Studio生成了makefile类型的项目,而那些在VS2005中不适用于嵌入式平台,所以我放弃了.CMake可以生成本机makefile,但CE需要一个定制的,过时的分支.所以我想问一下我们可能想要查看的其他工具,或者我们应该注意这些工具的任何已知绊脚石.
更新:我在几个地方找到了android原生二进制文件的说明,pixellight甚至有cmake脚本通过直接调用打包工具生成apk.另外这个shell脚本显示它. 这里似乎记录了iPhone的使用情况.
在我的个人经验中,相同的CMake构建文件可用于在至少Win32(VS2005),Linux(ubuntu)和OS X(10.5.8 Leopard)的平台上生成和构建项目.在Android应用程序构建过程中有多个项目可以使用CMake,例如http://code.google.com/p/android-cmake/.有了所有这些选项,我会认为CMake是个不错的选择.如果您以前有过编写configure.ac和Makefile.ac文件的经验,那么进一步的CMake很容易获取,甚至更容易.
注意:CMake的工作原理:
| 归档时间: |
|
| 查看次数: |
1788 次 |
| 最近记录: |