Мне не нужен подпроект ALL_BUILD, могу ли я его не создавать? Спасибо.
Можно ли не генерировать проект ALL_BUILD в cmake?
Ответы (2)
Проблема CMake № 16979: создается цель ALL_BUILD:
Цель
ALL_BUILD
соответствует представлению CMake о цели all, что эквивалентно созданию всех с помощью генераторов make-файлов. Это отличается от поведения Build Solution из-за особенностей того, как VS IDE обрабатывает зависимости между vcxproj.Невозможно подавить цель
ALL_BUILD
. Он должен существовать для таких команд, какcmake --build
. чтобы иметь возможность по умолчанию строить все цели.
Таким образом, вы не можете избежать этого - как и в случае с ответом @arrowd - но в CMake есть некоторые вещи, которые могут повлиять на его использование / внешний вид (в генераторах IDE, таких как Visual Studio):
При активации глобального свойства
USE_FOLDERS
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
общие цели
ALL_BUILD
,ZERO_CHECK
,INSTALL
,PACKAGE
иRUN_TESTS
будут сгруппированы в папкуCMakePredefinedTargets
(или любое другое имя, указанное в global _ 12_).Глобальные переменные
CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
иCMAKE_SKIP_PACKAGE_ALL_DEPENDENCY
подавляют автоматически сгенерированные зависимости дляINSTALL
илиPACKAGE
отALL_BUILD
цели.Глобальное свойство
VS_STARTUP_PROJECT
можно использовать для изменения имени запускаемого проекта по умолчанию. к чему-то другому, кромеALL_BUILD
или первого проекта, не находящегося в целевых подпапках.
Ссылки
- Что такое ALL_BUILD и ZERO_CHECK, и я они нужны?
- Как пропустить зависимость от всех для целевого пакета?
- Нет CMakePredefinedTargets при использовании папок решений
Он соответствует цели all
make, поэтому нет, вы не можете избежать его создания. Однако вы можете удалить его из решения вручную.