使用脚本扩展CMake是一种好的做法吗?

2024-04-26 10:12:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我们围绕CMake运行一些额外的命令,用于配置、构建、打包等

例如,在Windows上,build命令如下所示:

mkdir build
cd build
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"

cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ..
msbuild synergy-core.sln /p:Platform="x64" /p:Configuration=%CMAKE_BUILD_TYPE% /m

在我们的CI系统中,有大约50个这样的命令块用于各种平台和配置,因此维护它们真的很麻烦。什么是最好的方法来简化这一点,使之更具普遍性?有没有一个好的实践方法可以将这些命令转移到源代码管理中?你知道吗

例如,包装器脚本?以前,我为此实现了hm.py in Synergy,后来removed支持将命令移动到CI系统,但这使得在本地测试构建系统变得更加繁琐。你知道吗


Tags: 方法命令buildcmakeciwindows系统cd
1条回答
网友
1楼 · 发布于 2024-04-26 10:12:25

不仅仅是一个完整的答案,而是第一次尝试:

你可以把它浓缩成两行。你知道吗

cmake -H. -Bbuild -G "Visual Studio 14 2015 Win64"

运行配置步骤并

cmake  build build  target ALL_BUILD  config %CMAKE_BUILD_TYPE%   /nologo /verbosity:minimal /maxcpucount

运行生成。CMake的-B选项没有正式的文档记录,但是它创建了一个构建目录(它以前可能不存在,您可能也会给它提供绝对路径)。你知道吗

配置之后,CMakes构建工具模式非常方便。它选择本机生成工具(visualstudio项目的MSBuild)并为给定的目标/配置组合运行该工具。目标可以是INSTALL, ALL_BUILD, RUN_TESTS。。。无需通过调用vcvarsall.bat手动设置环境变量,如果编译器安装在生成机器上,CMake将通过显式给定的-G选项来查找编译器本身。你知道吗

关于-H选项,请参见this问题。你知道吗

相关问题 更多 >