У меня есть проект CMake (myapp), который зависит от другого проекта CMake (интегратора). Проект интегратора объявляется через ExternalProject_Add, и я использую параметр GIT_TAG, чтобы указать, какую версию кода интегратора нужно построить. Это отлично работает в режиме онлайн. Но я столкнулся с проблемами сбоя сборки, если я когда-либо в сети. Он всегда терпит неудачу при сборке, если он не может достичь репликации git, даже если он ранее загрузил копию репо. Могу ли я заставить CMake перестать обращаться к репозиторию GIT_TAG и просто построить с кодом, который он ранее загрузил, когда был в последний раз?Сбой сборки CMake, если он не может достичь зависимости reo
1
A
ответ
1
На основании документации ExternalProject есть опция с именем UPDATE_DISCONNECTED
.
Если
UPDATE_DISCONNECTED
установлен, шаг обновление не выполняется автоматически при создании основной цели. Шаг обновления может по-прежнему быть добавлен в качестве целевой цели и вызываться вручную. Это полезно, если вы хотите разрешить сборку проекта, когда вы отключены от сети (вам может понадобиться сеть для этапа загрузки). По умолчанию этот отключен.
Поэтому следует добавить параметр
UPDATE_DISCONNECTED 1
вариант к вашему ExternalProject_Add
декларации для того, чтобы иметь возможность работать в автономном режиме.
Смежные вопросы
- 1. Проект SDL Сбой сборки CMake
- 2. Может ли teamcity сбой сборки, если подходящая зависимость не найдена?
- 3. Может ли CMake генерировать скрипты сборки, которые * не * используют cmake?
- 4. не может выполнить тест maven. Сбой сборки.
- 5. CMake не может найти библиотеку в зависимости
- 6. Создать цель CMake, только если зависимости удовлетворены
- 7. CMake: переписать проект, только если он изменен?
- 8. Сбой модуля, если он не должен делать
- 9. Зависимости от установки CMake
- 10. CMake: флаги по умолчанию в зависимости от типа сборки
- 11. CMake: Зависимости внешнего проекта
- 12. Зависимости проекта CMAKE
- 13. CMAKE: автоматически добавлять зависимости зависимостей
- 14. cmake add_custom_command сбой, цель удаляется
- 15. cmake не устанавливает MPI_C_LIBRARIES, если он не запускается дважды
- 16. CMake и зависимости
- 17. CMake не может найти OpenCVConfig.cmake
- 18. Сбой сборки, если аннотация присутствует в ProGuard
- 19. зависимости пакета CMake обработки
- 20. cmake find_package не может найти glfw после сборки и установки
- 21. CMake "UUID" связывая СБОЙ
- 22. Сбой связи с CMake
- 23. Cmake изменяется сбойные сборки
- 24. Android - как узнать, если сбой сборки
- 25. CMake - в зависимости от другого Cmake проекта
- 26. CMake - как организовать зависимости
- 27. CMake установить целевые зависимости
- 28. Конфигурации сборки CMake Eclipse
- 29. Создайте дерево сборки для разных типов сборки с помощью CMake
- 30. Сбой сборки сборки в UWP
Как установить опцию 'UPDATE_DISCONNECTED 1'? (см. [docs] (https://cmake.org/cmake/help/v3.2/module/ExternalProject.html)). Как говорят документы: «Если UPDATE_DISCONNECTED установлен, шаг обновления не выполняется автоматически при создании Основная цель. Шаг обновления можно по-прежнему добавлять в качестве целевой цели и вызывать вручную. Это полезно, если вы хотите разрешить сборку проекта, когда вы отключены от сети (вам может понадобиться сеть для этапа загрузки). По умолчанию это отключено. " –
Спасибо, я попробую. Это, безусловно, звучит многообещающе. Я читал эту страницу документов несколько раз и не видел этого параметра. Вздох. – Stuart
UPDATE_DISCONNECTED был именно тем, что я искал. Огромное спасибо, @ DanMasek! – Stuart