Можно ли не генерировать проект ALL_BUILD в cmake?

Мне не нужен подпроект ALL_BUILD, могу ли я его не создавать? Спасибо.


person Stepan Yakovenko    schedule 02.03.2018    source источник


Ответы (2)


Проблема CMake № 16979: создается цель ALL_BUILD:

Цель ALL_BUILD соответствует представлению CMake о цели all, что эквивалентно созданию всех с помощью генераторов make-файлов. Это отличается от поведения Build Solution из-за особенностей того, как VS IDE обрабатывает зависимости между vcxproj.

Невозможно подавить цель ALL_BUILD. Он должен существовать для таких команд, как cmake --build. чтобы иметь возможность по умолчанию строить все цели.

Таким образом, вы не можете избежать этого - как и в случае с ответом @arrowd - но в CMake есть некоторые вещи, которые могут повлиять на его использование / внешний вид (в генераторах IDE, таких как Visual Studio):

  1. При активации глобального свойства USE_FOLDERS

     set_property(GLOBAL PROPERTY USE_FOLDERS ON)
    

    общие цели ALL_BUILD, ZERO_CHECK, INSTALL, PACKAGE и RUN_TESTS будут сгруппированы в папку CMakePredefinedTargets (или любое другое имя, указанное в global _ 12_).

    введите описание изображения здесь

  2. Глобальные переменные CMAKE_SKIP_INSTALL_ALL_DEPENDENCY и CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY подавляют автоматически сгенерированные зависимости для INSTALL или PACKAGE от ALL_BUILD цели.

  3. Глобальное свойство VS_STARTUP_PROJECT можно использовать для изменения имени запускаемого проекта по умолчанию. к чему-то другому, кроме ALL_BUILD или первого проекта, не находящегося в целевых подпапках.

Ссылки

person Florian    schedule 03.03.2018

Он соответствует цели all make, поэтому нет, вы не можете избежать его создания. Однако вы можете удалить его из решения вручную.

person arrowd    schedule 02.03.2018