Spec-Zone.ru › CMake 3.27

add_subdirectory

Добавить подкаталог в сборку.

add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL] [SYSTEM])

Добавляет подкаталог в сборку. source_dir указывает каталог, в котором находятся исходные CMakeLists.txt и файлы кода. Если это относительный путь, он будет интерпретирован относительно текущего каталога (стандартное использование), но также может быть абсолютным путём. binary_dir указывает каталог, в котором будут размещены выходные файлы. Если это относительный путь, он будет интерпретирован относительно текущего каталога вывода, но также может быть абсолютным путём. Если binary_dir не указан, будет использовано значение source_dir, прежде чем будет расширен любой относительный путь (стандартное использование). Файл CMakeLists.txt в указанном исходном каталоге будет обработан CMake немедленно перед продолжением обработки текущего входного файла за пределами этой команды.

Если предоставлен аргумент EXCLUDE_FROM_ALL, то по умолчанию цели в подкаталоге не будут включены в ALL цель родительского каталога и будут исключены из файлов проекта IDE. Пользователи должны явно скомпилировать цели в подкаталоге. Это предназначено для использования, когда подкаталог содержит отдельную часть проекта, которая полезна, но не необходима, например, набор примеров. Обычно подкаталог должен содержать собственное вызов команды project(), чтобы в подкаталоге была сгенерирована полная система сборки (например, файл решения Visual Studio IDE). Обратите внимание, что межцелевые зависимости имеют приоритет над этим исключением. Если цель, скомпилированная родительским проектом, зависит от цели в подкаталоге, зависимая цель будет включена в систему сборки родительского проекта для удовлетворения зависимости.

Добавлено в версии 3.25: Если предоставлен аргумент SYSTEM, свойство каталога SYSTEM в подкаталоге будет установлено в true. Это свойство используется для инициализации свойства SYSTEM каждой неимпортированной цели, созданной в этом подкаталоге.

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/command/add_subdirectory.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API