Visual Studio от CMake - отладка / выпуск не найден - PullRequest
0 голосов
/ 22 марта 2019

Сценарий конфигурации 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.

1 Ответ

2 голосов
/ 24 марта 2019

Порядок аргументов командной строки для cmake имеет значение в этом случае. Для режима сборки опция --build должна быть первой из перечисленных, но перед ней стоит опция -j8. Измените команду build на следующую, и она должна работать:

cmake --build . --config Debug -j8

Требование к оформлению заказа задокументировано для опции --build в разделе Build A Project руководства по cmake.

...