Как заставить CMake пропускать ExternalProject при последующих запусках? - PullRequest
1 голос
/ 25 сентября 2019

Я использую CMake для проекта, в котором я хочу связать Clang.Я использую ExternalProject_Add для сборки Clang из источника.Однако, поскольку Clang и LLVM огромны, make без изменений не займет 45 секунд.

Есть ли способ заставить CMake просто создать ExternalProject один раз, а затем даже не проверять, изменилось ли что-либо в последующемработает, если он уже был успешно построен?

1 Ответ

1 голос
/ 25 сентября 2019

Лучший способ использовать ExternalProject_Add() - это структурировать ваш проект как superbuild .Это означает, что ваш проект верхнего уровня («superbuild») не создает никакого реального кода и вместо этого состоит только из ExternalProject_Add вызовов.Ваш «настоящий» проект добавляется как один из «внешних» проектов.Это позволяет вам настроить супербилд со всеми зависимостями, упорядочением и т. Д.

Рабочий процесс выглядит следующим образом:

  1. Сгенерируйте проект супербилда.
  2. Сборкапроект суперстройки.Это создаст и установит все зависимости, а также сгенерирует (и соберет) ваш реальный проект.
  3. Переключитесь на систему сборки, сгенерированную для вашего реального проекта, и начните дальнейшую разработку с ее использованием.Ваши зависимости уже правильно настроены и установлены сборкой проекта superbuild на предыдущем шаге, и сборка никогда не будет проверяться на устаревшую.
  4. Если вам когда-либо понадобится изменить настройкуиз ваших зависимостей, сделайте это и соберите супербилд снова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...