summaryrefslogtreecommitdiff
path: root/share/cmake-3.10/Help/command/aux_source_directory.rst
diff options
context:
space:
mode:
Diffstat (limited to 'share/cmake-3.10/Help/command/aux_source_directory.rst')
-rw-r--r--share/cmake-3.10/Help/command/aux_source_directory.rst24
1 files changed, 24 insertions, 0 deletions
diff --git a/share/cmake-3.10/Help/command/aux_source_directory.rst b/share/cmake-3.10/Help/command/aux_source_directory.rst
new file mode 100644
index 0000000..dcd1cdf
--- /dev/null
+++ b/share/cmake-3.10/Help/command/aux_source_directory.rst
@@ -0,0 +1,24 @@
+aux_source_directory
+--------------------
+
+Find all source files in a directory.
+
+::
+
+ aux_source_directory(<dir> <variable>)
+
+Collects the names of all the source files in the specified directory
+and stores the list in the ``<variable>`` provided. This command is
+intended to be used by projects that use explicit template
+instantiation. Template instantiation files can be stored in a
+"Templates" subdirectory and collected automatically using this
+command to avoid manually listing all instantiations.
+
+It is tempting to use this command to avoid writing the list of source
+files for a library or executable target. While this seems to work,
+there is no way for CMake to generate a build system that knows when a
+new source file has been added. Normally the generated build system
+knows when it needs to rerun CMake because the CMakeLists.txt file is
+modified to add a new source. When the source is just added to the
+directory without modifying this file, one would have to manually
+rerun CMake to generate a build system incorporating the new file.