summaryrefslogtreecommitdiffstats
path: root/src/corelib/doc/src/cmake-macros.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/doc/src/cmake-macros.qdoc')
-rw-r--r--src/corelib/doc/src/cmake-macros.qdoc337
1 files changed, 115 insertions, 222 deletions
diff --git a/src/corelib/doc/src/cmake-macros.qdoc b/src/corelib/doc/src/cmake-macros.qdoc
index d595208449..24b720aa42 100644
--- a/src/corelib/doc/src/cmake-macros.qdoc
+++ b/src/corelib/doc/src/cmake-macros.qdoc
@@ -26,42 +26,11 @@
****************************************************************************/
/*!
-\page qtcore-cmake-qt5-wrap-cpp.html
-\ingroup cmake-macros-qtcore
-
-\title qt5_wrap_cpp
-
-\brief Creates \c{.moc} files from sources.
-
-\section1 Synopsis
-
-\badcode
-qt5_wrap_cpp(<VAR> src_file1 [src_file2 ...]
- [TARGET target]
- [OPTIONS ...]
- [DEPENDS ...])
-\endcode
-
-\section1 Description
-
-\include includes/qt_wrap_cpp.qdocinc description
-
-\note For compatibility with Qt 6, the command is also available under the name \l qt_wrap_cpp.
-
-\section1 Arguments
-
-\include includes/qt_wrap_cpp.qdocinc arguments
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt5_wrap_cpp
-*/
-
-/*!
-\page qtcore-cmake-qt-wrap-cpp.html
+\page qt_wrap_cpp.html
\ingroup cmake-macros-qtcore
\title qt_wrap_cpp
+\target qt6_wrap_cpp
\brief Creates \c{.moc} files from sources.
@@ -72,60 +41,47 @@ qt_wrap_cpp(<VAR> src_file1 [src_file2 ...]
[TARGET target]
[OPTIONS ...]
[DEPENDS ...])
+
+qt6_wrap_cpp(<VAR> src_file1 [src_file2 ...]
+ [TARGET target]
+ [OPTIONS ...]
+ [DEPENDS ...])
\endcode
\section1 Description
-\include includes/qt_wrap_cpp.qdocinc description
+Creates rules for calling the \l{moc}{Meta-Object Compiler (moc)} on the given
+source files. For each input file, an output file is generated in the build
+directory. The paths of the generated files are added to \c{<VAR>}.
-This command was introduced in Qt 5.15. You can use \l qt5_wrap_cpp in older versions of Qt.
+\note This is a low-level macro. See the \l{CMake AUTOMOC Documentation} for a
+more convenient way to let source files be processed with \c{moc}.
\section1 Arguments
-\include includes/qt_wrap_cpp.qdocinc arguments
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_wrap_cpp
-*/
-
-/*!
-\page qtcore-cmake-qt5-add-resources.html
-\ingroup cmake-macros-qtcore
-
-\title qt5_add_resources
-
-\brief Compiles binary resources into source code.
-
-\section1 Synopsis
-
-\badcode
-qt5_add_resources(<VAR> file1.qrc [file2.qrc ...]
- [OPTIONS ...])
-\endcode
-
-\section1 Description
-
-\include includes/qt_add_resources.qdocinc arguments
+You can set an explicit \c{TARGET}. This will make sure that the target
+properties \c{INCLUDE_DIRECTORIES} and \c{COMPILE_DEFINITIONS} are also used
+when scanning the source files with \c{moc}.
-For embedding bigger resources, see \l qt5_add_big_resources.
+You can set additional \c{OPTIONS} that should be added to the \c{moc} calls.
+You can find possible options in the \l{moc}{moc documentation}.
-\note For compatibility with Qt 6, the command is also available under the name \l qt_add_resources.
-
-\section1 Arguments
-
-\include includes/qt_add_resources.qdocinc arguments
+\c{DEPENDS} allows you to add additional dependencies for recreation of the
+generated files. This is useful when the sources have implicit dependencies,
+like code for a Qt plugin that includes a \c{.json} file using the
+Q_PLUGIN_METADATA() macro.
\section1 Examples
-\snippet cmake-macros/examples.cmake qt5_add_resources
+\snippet cmake-macros/examples.cmake qt_wrap_cpp
*/
/*!
-\page qtcore-cmake-qt-add-resources.html
+\page qt_add_resources.html
\ingroup cmake-macros-qtcore
\title qt_add_resources
+\target qt6_add_resources
\brief Compiles binary resources into source code.
@@ -134,19 +90,26 @@ For embedding bigger resources, see \l qt5_add_big_resources.
\badcode
qt_add_resources(<VAR> file1.qrc [file2.qrc ...]
[OPTIONS ...])
+
+qt6_add_resources(<VAR> file1.qrc [file2.qrc ...]
+ [OPTIONS ...])
\endcode
\section1 Description
-\include includes/qt_add_resources.qdocinc arguments
+Creates source code from Qt resource files using the
+\l{Resource Compiler (rcc)}. Paths to the generated source files are added to
+\c{<VAR>}.
-For embedding bigger resources, see \l qt_add_big_resources.
+\note This is a low-level macro. See the \l{CMake AUTORCC Documentation} for a
+more convenient way to let Qt resource files be processed with \c{rcc}.
-This command was introduced in Qt 5.15. You can use \l qt5_add_resources in older versions of Qt.
+For embedding bigger resources, see \l qt_add_big_resources.
\section1 Arguments
-\include includes/qt_add_resources.qdocinc arguments
+You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
+You can find possible options in the \l{rcc}{rcc documentation}.
\section1 Examples
@@ -154,40 +117,11 @@ This command was introduced in Qt 5.15. You can use \l qt5_add_resources in olde
*/
/*!
-\page qtcore-cmake-qt5-add-big-resources.html
-\ingroup cmake-macros-qtcore
-
-\title qt5_add_big_resources
-
-\brief Compiles big binary resources into object code.
-
-\section1 Synopsis
-
-\badcode
-qt5_add_big_resources(<VAR> file1.qrc [file2.qrc ...]
- [OPTIONS ...])
-\endcode
-
-\section1 Description
-
-\include includes/qt_add_big_resources.qdocinc description
-
-\note For compatibility with Qt 6, the command is also available under the name \l qt_add_big_resources.
-
-\section1 Arguments
-
-\include includes/qt_add_big_resources.qdocinc arguments
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt5_add_big_resources
-*/
-
-/*!
-\page qtcore-cmake-qt-add-big-resources.html
+\page qt_add_bigresources.html
\ingroup cmake-macros-qtcore
\title qt_add_big_resources
+\target qt6_add_big_resources
\brief Compiles big binary resources into object code.
@@ -196,59 +130,40 @@ qt5_add_big_resources(<VAR> file1.qrc [file2.qrc ...]
\badcode
qt_add_big_resources(<VAR> file1.qrc [file2.qrc ...]
[OPTIONS ...])
-\endcode
-
-\section1 Description
-
-\include includes/qt_add_big_resources.qdocinc description
-
-This command was introduced in Qt 5.15. You can use \l qt5_add_big_resources in older versions of Qt.
-
-\section1 Arguments
-\include includes/qt_add_big_resources.qdocinc arguments
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_add_big_resources
-*/
-
-/*!
-\page qtcore-cmake-qt5_add_binary_resources.html
-\ingroup cmake-macros-qtcore
-
-\title qt5_add_binary_resources
-
-\brief Creates an \c{RCC} file from a list of Qt resource files.
-
-\section1 Synopsis
-
-\badcode
-qt5_add_binary_resources(target file1.qrc [file2.qrc ...]
- [DESTINATION ...]
- [OPTIONS ...])
+qt6_add_big_resources(<VAR> file1.qrc [file2.qrc ...]
+ [OPTIONS ...])
\endcode
\section1 Description
-\include includes/qt_add_binary_resources.qdocinc description
+Creates compiled object files from Qt resource files using the
+\l{Resource Compiler (rcc)}. Paths to the generated files are added to
+\c{<VAR>}.
+
+This is similar to \l qt_add_resources, but directly
+generates object files (\c .o, \c .obj) files instead of C++ source code.
+This allows to embed bigger resources, where compiling to C++ sources and then
+to binaries would be too time consuming or memory intensive.
-\note For compatibility with Qt 6, the command is also available under the name \l qt_add_binary_resources.
+\note This macro is only available if using \c{CMake} 3.9 or later.
\section1 Arguments
-\include includes/qt_add_binary_resources.qdocinc arguments
+You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
+You can find possible options in the \l{rcc}{rcc documentation}.
\section1 Examples
-\snippet cmake-macros/examples.cmake qt5_add_binary_resources
+\snippet cmake-macros/examples.cmake qt_add_big_resources
*/
/*!
-\page qtcore-cmake-qt_add_binary_resources.html
+\page qt_add_binary_resources.html
\ingroup cmake-macros-qtcore
\title qt_add_binary_resources
+\target qt6_add_binary_resources
\brief Creates an \c{RCC} file from a list of Qt resource files.
@@ -258,58 +173,36 @@ qt5_add_binary_resources(target file1.qrc [file2.qrc ...]
qt_add_binary_resources(target file1.qrc [file2.qrc ...]
[DESTINATION ...]
[OPTIONS ...])
-\endcode
-
-\section1 Description
-
-\include includes/qt_add_binary_resources.qdocinc description
-This command was introduced in Qt 5.15. You can use \l qt5_add_binary_resources in older versions of Qt.
-
-\section1 Arguments
-
-\include includes/qt_add_binary_resources.qdocinc arguments
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt_add_binary_resources
-*/
-
-/*!
-\page qtcore-cmake-qt5-generate-moc.html
-\ingroup cmake-macros-qtcore
-
-\title qt5_generate_moc
-
-\brief Calls moc on an input file.
-
-\section1 Synopsis
-
-\badcode
-qt5_generate_moc(src_file dest_file
- [TARGET target])
+qt6_add_binary_resources(target file1.qrc [file2.qrc ...]
+ [DESTINATION ...]
+ [OPTIONS ...])
\endcode
\section1 Description
-\include includes/qt_generate_moc.qdocinc description
-
-\note For compatibility with Qt 6, the command is also available under the name \l qt_generate_moc.
+Adds a custom \c target that compiles Qt resource files into a binary \c{.rcc}
+file.
\section1 Arguments
-\include includes/qt_generate_moc.qdocinc arguments
+\c{DESTINATION} sets the path of the generated \c{.rcc} file. The default is
+\c{${CMAKE_CURRENT_BINARY_DIR}/${target}.rcc}.
+
+You can set additional \c{OPTIONS} that should be added to the \c{rcc} calls.
+You can find possible options in the \l{rcc}{rcc documentation}.
\section1 Examples
-\snippet cmake-macros/examples.cmake qt5_generate_moc
+\snippet cmake-macros/examples.cmake qt_add_binary_resources
*/
/*!
-\page qtcore-cmake-qt-generate-moc.html
+\page qt_generate_moc.html
\ingroup cmake-macros-qtcore
\title qt_generate_moc
+\target qt6_generate_moc
\brief Calls moc on an input file.
@@ -318,17 +211,26 @@ qt5_generate_moc(src_file dest_file
\badcode
qt_generate_moc(src_file dest_file
[TARGET target])
+
+qt6_generate_moc(src_file dest_file
+ [TARGET target])
\endcode
\section1 Description
-\include includes/qt_generate_moc.qdocinc description
+Creates a rule to call the \l{moc}{Meta-Object Compiler (moc)} on \c src_file
+and store the output in \c dest_file.
-This command was introduced in Qt 5.15. You can use \l qt5_generate_moc in older versions of Qt.
+\note This is a low-level macro. See the \l{CMake AUTOMOC Documentation} for a
+more convenient way to let source files be processed with \c{moc}.
+\l qt_wrap_cpp is also similar, but automatically generates a temporary file
+path for you.
\section1 Arguments
-\include includes/qt_generate_moc.qdocinc arguments
+You can set an explicit \c{TARGET}. This will make sure that the target
+properties \c{INCLUDE_DIRECTORIES} and \c{COMPILE_DEFINITIONS} are also used
+when scanning the source files with \c{moc}.
\section1 Examples
@@ -336,50 +238,11 @@ This command was introduced in Qt 5.15. You can use \l qt5_generate_moc in older
*/
/*!
-\page qtcore-cmake-qt5-import-plugins.html
-\ingroup cmake-macros-qtcore
-
-\title qt5_import_plugins
-
-\brief Specifies a custom set of plugins to import for a static Qt build
-
-\section1 Synopsis
-
-\badcode
-qt5_import_plugins(target
- [INCLUDE plugin ...]
- [EXCLUDE plugin ...]
- [INCLUDE_BY_TYPE plugin_type plugin ...]
- [EXCLUDE_BY_TYPE plugin_type])
-\endcode
-
-\section1 Description
-
-\include includes/qt_import_plugins.qdocinc description
-
-\note For compatibility with Qt 6, the command is also available under the name \l qt_import_plugins.
-
-\section1 Examples
-
-\snippet cmake-macros/examples.cmake qt5_import_plugins
-
-In the snippet above, the following occurs with the executable \c myapp:
-
-\list
-\li The \c Qt5::QCocoaIntegrationPlugin is imported into myapp.
-\li The \c Qt5::QMinimalIntegrationPlugin plugin is
- excluded from being automatically imported into myapp.
-\li The default list of plugins for \c imageformats is
- overridden to only include Qt5::QGifPlugin and Qt5::QJpegPlugin.
-\li All \c sqldrivers plugins are excluded from automatic importing.
-\endlist
-*/
-
-/*!
-\page qtcore-cmake-qt-import-plugins.html
+\page qt_import_plugins.html
\ingroup cmake-macros-qtcore
\title qt_import_plugins
+\target qt6_import_plugins
\brief Specifies a custom set of plugins to import for a static Qt build
@@ -391,13 +254,43 @@ qt_import_plugins(target
[EXCLUDE plugin ...]
[INCLUDE_BY_TYPE plugin_type plugin ...]
[EXCLUDE_BY_TYPE plugin_type])
+
+qt6_import_plugins(target
+ [INCLUDE plugin ...]
+ [EXCLUDE plugin ...]
+ [INCLUDE_BY_TYPE plugin_type plugin ...]
+ [EXCLUDE_BY_TYPE plugin_type])
\endcode
\section1 Description
-\include includes/qt_import_plugins.qdocinc 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.
+\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.
-This command was introduced in Qt 5.15. You can use \l qt5_import_plugins in older versions of Qt.
+\note This command imports plugins from static Qt builds only.
+On shared builds, it does nothing.
\section1 Examples
@@ -406,11 +299,11 @@ This command was introduced in Qt 5.15. You can use \l qt5_import_plugins in old
In the snippet above, the following occurs with the executable \c myapp:
\list
-\li The \c Qt5::QCocoaIntegrationPlugin is imported into myapp.
-\li The \c Qt5::QMinimalIntegrationPlugin plugin is
+\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 Qt5::QGifPlugin and Qt5::QJpegPlugin.
+ overridden to only include Qt6::QGifPlugin and Qt6::QJpegPlugin.
\li All \c sqldrivers plugins are excluded from automatic importing.
\endlist
*/