source_group ------------ Define a grouping for source files in IDE project generation. There are two different signatures to create source groups. .. code-block:: cmake source_group( [FILES ...] [REGULAR_EXPRESSION ]) source_group(TREE [PREFIX ] [FILES ...]) 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: ``TREE`` CMake will automatically detect, from ```` 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 ```` files will be cut to be relative to ````. ``PREFIX`` Source group and files located directly in ```` path, will be placed in ```` source groups. ``FILES`` Any source file specified explicitly will be placed in group ````. 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 ````. 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. The ```` of the group and ```` argument may contain backslashes to specify subgroups: .. code-block:: cmake source_group(outer\\inner ...) source_group(TREE PREFIX sources\\inc ...) For backwards compatibility, the short-hand signature .. code-block:: cmake source_group( ) is equivalent to .. code-block:: cmake source_group( REGULAR_EXPRESSION )