cmake/Help/command/source_group.rst

59 lines
1.7 KiB
ReStructuredText
Raw Normal View History

2014-08-03 19:52:23 +02:00
source_group
------------
Define a grouping for source files in IDE project generation.
2017-04-14 19:02:05 +02:00
There are two different signatures to create source groups.
2014-08-03 19:52:23 +02:00
2017-04-14 19:02:05 +02:00
::
2014-08-03 19:52:23 +02:00
source_group(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
2017-04-14 19:02:05 +02:00
source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])
2014-08-03 19:52:23 +02:00
Defines a group into which sources will be placed in project files.
This is intended to set up file tabs in Visual Studio.
The options are:
2017-04-14 19:02:05 +02:00
``TREE``
CMake will automatically detect, from ``<src>`` files paths, source groups
it needs to create, to keep structure of source groups analogically to the
actual files and directories structure in the project. Paths of ``<src>``
files will be cut to be relative to ``<root>``.
``PREFIX``
Source group and files located directly in ``<root>`` path, will be placed
in ``<prefix>`` source groups.
2014-08-03 19:52:23 +02:00
``FILES``
Any source file specified explicitly will be placed in group
``<name>``. Relative paths are interpreted with respect to the
current source directory.
``REGULAR_EXPRESSION``
Any source file whose name matches the regular expression will
be placed in group ``<name>``.
If a source file matches multiple groups, the *last* group that
explicitly lists the file with ``FILES`` will be favored, if any.
If no group explicitly lists the file, the *last* group whose
regular expression matches the file will be favored.
2017-04-14 19:02:05 +02:00
The ``<name>`` of the group and ``<prefix>`` argument may contain backslashes
to specify subgroups:
2014-08-03 19:52:23 +02:00
.. code-block:: cmake
source_group(outer\\inner ...)
2017-04-14 19:02:05 +02:00
source_group(TREE <root> PREFIX sources\\inc ...)
2014-08-03 19:52:23 +02:00
For backwards compatibility, the short-hand signature
.. code-block:: cmake
source_group(<name> <regex>)
is equivalent to
.. code-block:: cmake
source_group(<name> REGULAR_EXPRESSION <regex>)