一个gitlab-runner配置脚本.gitlab-ci.yml
,用于在Powershell中执行:
windows:
tags:
- windows
stage: build
script:
- New-Item -ItemType "directory" -Confirm:$false -Force:$true -Name "build"
- cd build
- cmd.exe "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
- cmake -G "Visual Studio 15 2017" -A x64 -T host=x64 -B. ..
- cmake -j8 --build . --config Debug
- ctest -j4
产生
$ cmd.exe "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
[...]
-- Configuring done
-- Generating done
-- Build files have been written to: C:/gitlab-runner/builds/xxxxxxxx/build
$ cmake -j8 --build . --config Debug
CMake Error: The source directory "C:/gitlab-runner/builds/xxxxxxxx/build/Debug" does not exist.
Specify --help for usage, or press the help button on the CMake GUI.
ERROR: Job failed: exit status 1
如何解决配置步骤(cmake
)与配置步骤之间的冲突
构建步骤(cmake --build
)?
没有选项--config Debug
,后者将无法工作;
但是如果指定了该选项,则它将查找不存在的目录。
与--config Release
相同的问题。
披露:从CMake邮件列表中交叉发布。
答案 0 :(得分:2)
在这种情况下,命令行参数对cmake
的排序很重要。对于构建模式,--build
选项必须是第一个列出的选项,但是-j8
选项已经放在前面。将build命令更改为以下命令,它应该可以工作:
cmake --build . --config Debug -j8
cmake手册的Build A Project部分中的--build
选项记录了订购要求。