qt_add_plugin
Создаёт целевой модуль Qt плагина.
Команда определена в компоненте Core пакета Qt6. Загрузите пакет с помощью:
find_package(Qt6 COMPONENTS Core REQUIRED)
Резюме
qt_add_plugin(target
[SHARED | STATIC]
[CLASS_NAME class_name]
[OUTPUT_TARGETS variable_name]
) Если команды без версии отключены, используйте qt6_add_plugin() вместо этого. Она поддерживает тот же набор аргументов, что и эта команда.
Описание
Целевые модули Qt плагинов имеют дополнительные требования помимо обычных целевых модулей CMake библиотек. Команда qt_add_plugin() добавляет необходимую обработку, чтобы гарантировать выполнение этих требований. Её следует использовать вместо встроенной команды CMake add_library() при определении целевого модуля Qt плагина.
По умолчанию плагин будет создан как STATIC библиотека, если Qt был скомпилирован статически, или как MODULE библиотека в противном случае. Вы можете переопределить этот параметр, явно указав опцию STATIC или SHARED.
Примечание: Динамические плагины предназначены для динамической загрузки во время выполнения, а не для линковки во время сборки. CMake различает эти два сценария, предоставляя тип библиотеки MODULE для динамически загружаемых библиотек и тип библиотеки SHARED для библиотек, которые могут быть связаны напрямую. Это различие важно для некоторых компиляторов (в частности, Visual Studio) из-за способа обработки экспорта символов. Возможно, не удастся связать MODULE библиотеки, а создание SHARED библиотеки без экспортируемых символов может привести к ошибкам во время сборки. Если опция SHARED передана в qt_add_plugin(), она создаст MODULE библиотеку вместо SHARED библиотеки.
Каждый плагин Qt имеет имя класса. По умолчанию оно совпадает с target, но его можно переопределить с помощью опции CLASS_NAME. Имя класса соответствует имени C++ класса, который объявляет метаданные для плагина. Для статических плагинов это также имя, передаваемое Q_IMPORT_PLUGIN, которое импортирует плагин в приложение и гарантирует его доступность во время выполнения.
Если плагин скомпилирован статически, qt_add_plugin() может определять дополнительные внутренние целевые модули. Это облегчает автоматический импорт плагина для любого исполняемого файла или динамической библиотеки, которые ссылаются на плагин. Если проект устанавливает плагин и намерен предоставить его другим проектам для линковки, проект также должен установить эти внутренние целевые модули. Имена этих целевых модулей можно получить, указав опцию OUTPUT_TARGETS и имя переменной, в которую необходимо вернуть список целевых модулей.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt-add-plugin.html