cmake/Help/command/aux_source_directory.rst

25 lines
1.1 KiB
ReStructuredText
Raw Normal View History

2014-08-03 19:52:23 +02:00
aux_source_directory
--------------------
Find all source files in a directory.
2019-11-11 23:01:05 +01:00
.. code-block:: cmake
2014-08-03 19:52:23 +02:00
aux_source_directory(<dir> <variable>)
Collects the names of all the source files in the specified directory
2015-11-17 17:22:37 +01:00
and stores the list in the ``<variable>`` provided. This command is
2014-08-03 19:52:23 +02:00
intended to be used by projects that use explicit template
instantiation. Template instantiation files can be stored in a
2019-11-11 23:01:05 +01:00
``Templates`` subdirectory and collected automatically using this
2014-08-03 19:52:23 +02:00
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
2019-11-11 23:01:05 +01:00
knows when it needs to rerun CMake because the ``CMakeLists.txt`` file is
2014-08-03 19:52:23 +02:00
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.