blob: da97c5936c6a95f77bc161e858c364ebd7ac8105 [file] [log] [blame] [edit]
SOURCES
-------
.. versionadded:: 4.4
This specifies the list of paths to sources for the file set.
The :command:`target_sources` command sets or adds to the ``SOURCES`` file set
property for the file sets defined with the ``PRIVATE`` or ``PUBLIC`` keyword
and is the usual way to manipulate it.
Contents of ``SOURCES`` may use
:manual:`generator expressions <cmake-generator-expressions(7)>`.
Each file must be in one of the base directories, or a subdirectory of one of
the base directories. If relative paths are specified, they are considered
relative to the target's source directory.
The following behavior applies for the ``SOURCES`` and
:prop_fs:`INTERFACE_SOURCES` file set properties, dependent on the value of the
:prop_fs:`SCOPE` file set property:
``PRIVATE``
Only the ``SOURCES`` property can be set. Any change to
the :prop_fs:`INTERFACE_SOURCES` property will be ignored.
``PUBLIC``
``SOURCES`` and :prop_fs:`INTERFACE_SOURCES` properties will always have the
same content.
``INTERFACE``
Only the :prop_fs:`INTERFACE_SOURCES` property can be set. Any change to
``SOURCES`` property will be ignored.