summaryrefslogtreecommitdiff
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-01-16 11:01:38 -0500
committerCMake Topic Stage <kwrobot@kitware.com>2017-01-16 11:01:38 -0500
commit35ad12f99e71515f9cc65b1219160b88095a5f6b (patch)
tree82dfe9cf9f3201f70395f1136feb999dc1d5144c /Help
parent47d391d71d611c5129c6914ad77b34dc4bb79d75 (diff)
parentb42330be21c0d3046aa0e6fdf046a492bddef520 (diff)
downloadcmake-35ad12f99e71515f9cc65b1219160b88095a5f6b.tar.gz
Merge topic 'source_group-tree'
b42330be source_group: Add options create groups matching directory tree
Diffstat (limited to 'Help')
-rw-r--r--Help/command/source_group.rst18
-rw-r--r--Help/release/dev/source_group-tree.rst5
2 files changed, 21 insertions, 2 deletions
diff --git a/Help/command/source_group.rst b/Help/command/source_group.rst
index 6e3829c044..938ca40f2b 100644
--- a/Help/command/source_group.rst
+++ b/Help/command/source_group.rst
@@ -2,15 +2,27 @@ 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(<name> [FILES <src>...] [REGULAR_EXPRESSION <regex>])
+ source_group(TREE <root> [PREFIX <prefix>] [FILES <src>...])
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 ``<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.
+
``FILES``
Any source file specified explicitly will be placed in group
``<name>``. Relative paths are interpreted with respect to the
@@ -25,11 +37,13 @@ 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 ``<name>`` of the group may contain backslashes to specify subgroups:
+The ``<name>`` of the group and ``<prefix>`` argument may contain backslashes
+to specify subgroups:
.. code-block:: cmake
source_group(outer\\inner ...)
+ source_group(TREE <root> PREFIX sources\\inc ...)
For backwards compatibility, the short-hand signature
diff --git a/Help/release/dev/source_group-tree.rst b/Help/release/dev/source_group-tree.rst
new file mode 100644
index 0000000000..c5fec1dc00
--- /dev/null
+++ b/Help/release/dev/source_group-tree.rst
@@ -0,0 +1,5 @@
+source_group-tree
+-----------------
+
+* The :command:`source_group` command gained ``TREE`` and ``PREFIX``
+ options to add groups following source tree directory structure.