我们有一个针对多个移动平台的复杂 C++ 代码库。我们目前有 Windows CE (4.2 到 6.5 原始 CE 和移动基于这些),安卓 (2.1+), iPhone (4+), 快工作了 八达 (2.0+) 并且如果有任何新的 C++/CX 东西,很可能会添加 Windows Phone (8+)。加上 上的测试版本Win32 和共享一些代码的 Win64 上的服务应用程序。我们也已经尝试在 Linux 上编译单元测试,但问题已经出现(到目前为止业务量太小,但可能会改变)使其在其他一些 Linux 平台上工作。
我们目前为每个平台使用 native 工具编译代码。它们中的每一个都非常复杂,并且在其内部或周围有一些技巧可以实现合理的单击构建。对于 Bada,我们还没有解决三星调整过的 Eclipse 之外的构建问题,我们必须在生产环境中解决这个问题。
到目前为止,它是有效的,但越来越成为一个维护问题。目前最大的问题是 iPhone 构建,因为与 Visual Studio 项目文件和普通的 makefile 不同,无法手动在 XCode 项目中添加/删除/重命名文件,并且只有两个人拥有 MacOS boxen 和任何 XCode 经验(而每个人都有Windows 并了解 Visual Studio)。我们还需要为 Bada 目标创建一些 makefile(它是普通的 GNU 工具链,所以任何能够与这些工具链交叉编译的东西都应该做),而且我不会摆脱 Android 构建中的一些杂项:修复错误在 cygwin 下构建时的依赖处理,在 ant 构建脚本和 shell 胶水之上的一些hacks 来按摩 list 并将它们保持在一起。
因此,我正在寻求有关如何统一这组不同平台的构建过程的建议。
对于其他事情,我准备解决任何缺陷,但我显然希望将 shell 胶带和吐痰的数量保持在最低限度,因此它应该:
到目前为止,我们已经开始尝试 CMake (时间不多,所以没走多远,但很快就要做点什么)还想了SCons .然而,几年前我已经尝试使用 SCons 为 Windows CE 构建,但由于它为 Visual Studio 生成了 makefile 类型的项目,而那些在 VS2005 中不适用于嵌入式平台,我放弃了。 CMake 可以生成 native makefile,但 custom, bit out of date, branch CE需要。所以我想问一下是否有是否有我们可能想要研究的任何其他工具或任何已知的使用这些工具的绊脚石,我们应该注意 .
更新:我在几个地方和 pixellight 找到了关于 android 原生二进制文件的说明。甚至还有直接调用打包工具生成apk的cmake脚本。还有 this shell script显示它。 iPhone usage似乎记录在这里。
最佳答案
根据我的个人经验,相同的 CMake 构建文件可用于跨平台生成和构建项目,至少适用于 Win32 (VS2005)、Linux(ubuntu) 和 OS X (10.5.8 Leopard)。 android app构建过程中使用CMake的项目有多个,例如http://code.google.com/p/android-cmake/ .有了所有这些选项,我认为 CMake 是一个不错的选择。进一步的 CMake 很容易上手,如果您之前有编写 configure.ac 和 Makefile.ac 文件的经验,则更容易上手。
注意:CMake 的工作原理:
关于c++ - 为多个移动平台构建工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9909846/