我们围绕CMake运行了一些额外的命令,用于配置,构建,打包等。
例如在Windows上,构建命令如下所示:
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系统,但这使得在本地测试构建系统变得更加乏味。
答案 0 :(得分:2)
不仅是完整的答案,而且是第一次尝试:
您可以将其压缩为两行。
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
选项尚未正式记录,但会创建一个构建目录(以前可能不存在,AFAIK也可以为其提供绝对路径)。
配置后,CMakes构建工具模式非常方便。它选择本机生成工具(MSBuild for Visual Studio项目),然后为给定的目标/配置组合运行该工具。目标可以是INSTALL, ALL_BUILD, RUN_TESTS
,...不需要通过调用vcvarsall.bat
来手动设置环境变量,如果CMake安装在构建计算机上,则CMake通过显式给定的-G选项查找编译器本身。
关于-H选项,另请参见this问题。