/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page qt_import_plugins.html
\ingroup cmake-commands-qtcore

\title qt_import_plugins
\target qt6_import_plugins

\summary {Specifies a custom set of plugins to import for a static Qt build.}

\include cmake-find-package-core.qdocinc

\cmakecommandsince 5.14

\section1 Synopsis

\badcode
qt_import_plugins(target
                  [INCLUDE plugin ...]
                  [EXCLUDE plugin ...]
                  [INCLUDE_BY_TYPE plugin_type plugin ...]
                  [EXCLUDE_BY_TYPE plugin_type]
                  [NO_DEFAULT]
)
\endcode

\versionlessCMakeCommandsNote qt6_import_plugins()

\section1 Description

Specifies a custom set of plugins to import. The optional arguments:
\c INCLUDE, \c EXCLUDE, \c INCLUDE_BY_TYPE, and \c EXCLUDE_BY_TYPE,
can be used more than once.

\list
\li \c INCLUDE -- can be used to specify a list of plugins to import.
\li \c EXCLUDE -- can be used to specify a list of plugins to exclude.
\li \c INCLUDE_BY_TYPE -- can be used to override the list of plugins to
       import for a certain plugin type.
\li \c EXCLUDE_BY_TYPE -- can be used to specify a plugin type to exclude;
       then no plugins of that type are imported.
\li \c NO_DEFAULT -- prevent the default plugins from being included
       automatically (for example, the default platform plugin).
\endlist

Qt provides plugin types such as \c imageformats, \c platforms,
and \c sqldrivers.

If the command isn't used the target automatically links against
a sane set of default plugins, for each Qt module that the target is linked
against. For more information, see
\l{CMake target_link_libraries Documentation}{target_link_libraries}.

Each plugin comes with a C++ stub file that automatically
initializes the plugin. Consequently, any target that links against a plugin
has this C++ file added to its \c SOURCES.

\note This command imports plugins from static Qt builds only.
On shared builds, it does nothing.

\section1 Examples

\snippet cmake-macros/examples.cmake qt_import_plugins

In the snippet above, the following occurs with the executable \c myapp:

\list
\li The \c Qt6::QCocoaIntegrationPlugin is imported into myapp.
\li The \c Qt6::QMinimalIntegrationPlugin plugin is
    excluded from being automatically imported into myapp.
\li The default list of plugins for \c imageformats is
    overridden to only include Qt6::QGifPlugin and Qt6::QJpegPlugin.
\li All \c sqldrivers plugins are excluded from automatic importing.
\endlist

\sa{qt6_import_qml_plugins}{qt_import_qml_plugins()}
*/
