summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorMateusz Janek <stryku2393@gmail.com>2016-12-21 14:27:49 (GMT)
committerBrad King <brad.king@kitware.com>2017-01-16 15:52:48 (GMT)
commitb42330be21c0d3046aa0e6fdf046a492bddef520 (patch)
treeefd6fbbda9401a36000f2c3b265b9d43310348e6 /Help
parent6154a2cddcdb297b1aef20f501fec9af7d7b5262 (diff)
downloadCMake-b42330be21c0d3046aa0e6fdf046a492bddef520.zip
CMake-b42330be21c0d3046aa0e6fdf046a492bddef520.tar.gz
CMake-b42330be21c0d3046aa0e6fdf046a492bddef520.tar.bz2
source_group: Add options create groups matching directory tree
Add `TREE` and `PREFIX` arguments to enable this behavior.
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 6e3829c..938ca40 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 0000000..c5fec1d
--- /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.