// Copyright (C) 2020 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
\page qt-wrap-cpp.html
\ingroup cmake-commands-qtcore

\title qt_wrap_cpp
\target qt6_wrap_cpp

\summary {Creates .moc files from sources.}

\include cmake-find-package-core.qdocinc

\cmakecommandsince 5.0

\section1 Synopsis

\badcode
qt_wrap_cpp(<VAR> src_file1 [src_file2 ...]
            [TARGET target]
            [OPTIONS ...]
            [DEPENDS ...])
\endcode

\versionlessCMakeCommandsNote qt6_wrap_cpp()

\section1 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>}.

\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

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}.

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}.

\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 qt_wrap_cpp
*/
