blob: ca9e1c130d3c47518c27c0d79e62c1a3131e95af [file]
INTERFACE_SOURCES
-----------------
.. versionadded:: 4.4
List of interface sources to compile into consuming targets.
The :command:`target_sources` command sets or adds to the ``INTERFACE_SOURCES``
file set property for the file sets defined with the ``PUBLIC`` or
``INTERFACE`` keyword and is the usual way to manipulate it.
Contents of ``INTERFACE_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 :prop_fs:`SOURCES` and
``INTERFACE_SOURCES`` file set properties, dependent on the value of the
:prop_fs:`SCOPE` file set property:
``PRIVATE``
Only the :prop_fs:`SOURCES` property can be set. Any change to the
``INTERFACE_SOURCES`` property will be ignored.
``PUBLIC``
:prop_fs:`SOURCES` and ``INTERFACE_SOURCES`` properties will always have the
same content.
``INTERFACE``
Only the ``INTERFACE_SOURCES`` property can be set. Any change to the
:prop_fs:`SOURCES` property will be ignored.