如何将PreMake/CMake集成到C++构建工作流程中

5
我正在研究PreMake/CMake。然而,我不知道如何将其用于整个跨平台构建流程。它生成makefile(或解决方案)。那么,您如何在每个目标平台上实际构建这些解决方案?您是否需要为每个目标维护一个构建脚本(例如.sh或.bat文件)?这将使使用premake/CMake等工具失去意义。
如果有一个展示从编写代码到最终构建产品的所有过程所需的教程链接,那就太好了。
感谢任何帮助。

我不确定我理解问题。 Premake生成构建文件。您通过构建它们来构建它们。如果您生成了一个makefile,则在其上运行make。如果您生成了VC.sln,则在其上运行VC。 Premake的重点在于,您的用户可以使用他们熟悉的任何构建文件。您可以使用VC projs,而您的用户可以使用makefiles或Code :: Blocks或其他工具。 - Nicol Bolas
premake(或CMake)生成项目文件(或makefile)。问题是如何以平台无关的方式构建这些文件。Ant似乎只是做到了这一点... - Korchkidu
1个回答

5
我们的主要开发也是用C++完成的。我们使用CMake + ANT。在Windows上使用VisualStudio,在Mac和iOS上使用XCode。一些构建工具是用Python编写的。
它运行非常顺畅。我们有单元测试和低级组件测试直接从构建中运行(利用了我们稍微调整过的CMake的CTest机制 - CMake是开源的)。更高级别的组件和系统测试是通过一个用C#编写的自定义框架运行的(我们曾经进行了一次很棒的辩论,是否使用现成的框架或者自己编写,最终我们决定任何现成的框架都需要修改得太多,所以从头开始编写我们自己的框架更值得;我仍然在想这是否是正确的决定)。
我们使用ANT将所有东西联系起来 - 主要在最低层使用调用,但也利用了一些已经成熟的扩展(如ftp和svn)。我们的CI运行在Jenkins上,通过ANT与底层构建层相连接。

谢谢。我正在使用C++编程。我已经修改了问题。此外,我需要整个工作流程。我听说我们必须关闭Visual Studio解决方案,然后启动premake,然后重新打开解决方案...这就是为什么我想听听人们如何每天使用premake的经验。 - Korchkidu
1
我们的主要开发也是用C++完成的。我们主要使用CMake + ANT。在Windows上使用VisualStudio,在Mac和iOS上使用XCode。它运行得相当顺畅。我认为要求一个“教程”可能有点过分了 - 你从提出具体问题中会获得更多的收益。 - malenkiy_scot
1
粗略地说,答案是“是的”——我们开发了一个包含各种CMake调用的ANT“库”。严格来说,答案是否定的——我们通过<exec>调用CMake,而不是通过扩展。 - malenkiy_scot
为什么要同时使用cmake和ant?它们不是都扮演着相同的角色吗? - Joseph Garvin
2
@JosephGarvin,简短的回答是“完全不会” :) - malenkiy_scot
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接