qt_add_library
Создаёт и завершает работу библиотеки.
Команда определена в компоненте Core пакета Qt6. Загрузите пакет с помощью:
find_package(Qt6 COMPONENTS Core REQUIRED)
Синтаксис
qt_add_library(target
[STATIC | SHARED | MODULE | INTERFACE | OBJECT]
[MANUAL_FINALIZATION]
sources...
) Если безымянные команды отключены, используйте qt6_add_library() вместо неё. Она поддерживает тот же набор аргументов, что и данная команда.
Описание
qt_add_library() — это обёртка вокруг встроенной команды CMake add_library(). Она выполняет следующие задачи:
- Создаёт CMake-цель соответствующего типа библиотеки.
- Обрабатывает завершение работы CMake-цели.
Создание цели
Тип создаваемой библиотеки можно явно указать с помощью одного из ключевых слов STATIC, SHARED, MODULE, INTERFACE или OBJECT, так же, как и при использовании add_library(). Если ни одно из этих ключевых слов не указано, тип создаваемой библиотеки зависит от способа сборки Qt. Если Qt был собран статически, будет создана статическая библиотека. В противном случае будет создана динамическая библиотека. Обратите внимание, что это отличается от работы команды CMake add_library(), где переменная BUILD_SHARED_LIBS управляет типом создаваемой библиотеки. Команда qt_add_library() не учитывает BUILD_SHARED_LIBS при определении типа библиотеки.
Любые sources будут переданы во внутренний вызов add_library().
Завершение
После создания цели могут потребоваться дополнительные шаги обработки или завершения. Обработка завершения реализуется командой qt_finalize_target().
Завершение может происходить либо как часть этого вызова, либо быть отложено на какое-то время после возврата этой команды (но оно всё равно должно происходить в рамках того же каталога). При использовании CMake 3.19 или более поздней версии завершение автоматически откладывается до конца текущего каталога. Это даёт вызывающей стороне возможность изменить свойства созданной цели перед её завершением. При использовании версий CMake, предшествующих 3.19, автоматическое откладывание не поддерживается. В этом случае завершение выполняется непосредственно перед возвратом этой команды.
Независимо от версии CMake, ключевое слово MANUAL_FINALIZATION может быть указано, чтобы указать, что вы будете явно вызывать qt_finalize_target() самостоятельно в какой-то момент в будущем. В общем случае, MANUAL_FINALIZATION не требуется, если проект должен поддерживать CMake 3.18 или более ранние версии.
См. также qt_finalize_target() и qt_add_executable().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt-add-library.html