浏览代码

Adjust help documentation for file(GLOB), add topic notes

Shane Parris 7 年之前
父节点
当前提交
6c4f8b4596
共有 2 个文件被更改,包括 17 次插入2 次删除
  1. 11 2
      Help/command/file.rst
  2. 6 0
      Help/release/dev/glob_configure_depends.rst

+ 11 - 2
Help/command/file.rst

@@ -98,10 +98,10 @@ command.
 ::
 
   file(GLOB <variable>
-       [LIST_DIRECTORIES true|false] [RELATIVE <path>]
+       [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
        [<globbing-expressions>...])
   file(GLOB_RECURSE <variable> [FOLLOW_SYMLINKS]
-       [LIST_DIRECTORIES true|false] [RELATIVE <path>]
+       [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS]
        [<globbing-expressions>...])
 
 Generate a list of files that match the ``<globbing-expressions>`` and
@@ -110,6 +110,11 @@ regular expressions, but much simpler.  If ``RELATIVE`` flag is
 specified, the results will be returned as relative paths to the given
 path.  The results will be ordered lexicographically.
 
+If the ``CONFIGURE_DEPENDS`` flag is specified, CMake will add logic
+to the main build system check target to rerun the flagged ``GLOB`` commands
+at build time. If any of the outputs change, CMake will regenerate the build
+system.
+
 By default ``GLOB`` lists directories - directories are omitted in result if
 ``LIST_DIRECTORIES`` is set to false.
 
@@ -118,6 +123,10 @@ By default ``GLOB`` lists directories - directories are omitted in result if
   your source tree.  If no CMakeLists.txt file changes when a source is
   added or removed then the generated build system cannot know when to
   ask CMake to regenerate.
+  The ``CONFIGURE_DEPENDS`` flag may not work reliably on all generators, or if
+  a new generator is added in the future that cannot support it, projects using
+  it will be stuck. Even if ``CONFIGURE_DEPENDS`` works reliably, there is
+  still a cost to perform the check on every rebuild.
 
 Examples of globbing expressions include::
 

+ 6 - 0
Help/release/dev/glob_configure_depends.rst

@@ -0,0 +1,6 @@
+glob_configure_depends
+----------------------
+
+* The :command:`file(GLOB)` and :command:`file(GLOB_RECURSE)` commands
+  learned a new flag ``CONFIGURE_DEPENDS`` which enables expression of
+  build system dependency on globbed directory's contents.