1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-18 08:51:52 +08:00
Files
CMake/Help/prop_tgt/SOURCES.rst
Deniz Bahadir 071f0d6f98 CMP0163: Make GENERATED source file property globally visible
This was originally attempted by policy CMP0118, but its
implementation did not cover all intended use cases.  We fixed its
documentation in commit 1dabbbb5e0 (CMP0118: Revise documentation to
describe actual behavior, 2024-03-20).

Add new policy CMP0163 to cover the remaining use cases.  In particular,
make the `GENERATED` property visible to `get_property` calls in other
directories.  In order to capture the original intention of CMP0118,
define CMP0163's NEW behavior to also imply CMP0118's NEW behavior.

Fixes: #25437
Fixes: #25058
2024-03-29 08:54:11 -04:00

39 lines
1.6 KiB
ReStructuredText

SOURCES
-------
This specifies the list of paths to source files for the target.
The following commands all set or add to the ``SOURCES`` target property
and are the usual way to manipulate it:
* :command:`add_executable`
* :command:`add_library`
* :command:`add_custom_target`
* :command:`target_sources`
Contents of ``SOURCES`` may use
:manual:`generator expressions <cmake-generator-expressions(7)>`.
If a path starts with a generator expression, it is expected to
evaluate to an absolute path. Not doing so is considered undefined behavior.
Paths that are for files generated by the build will be treated
as relative to the build directory of the target, if the path is not
already specified as an absolute path. Note that whether a file is seen as
generated may be affected by policies :policy:`CMP0118` and :policy:`CMP0163`.
If a path does not start with a generator expression, is not an
absolute path and is not a generated file, it will be treated as relative to
the location selected by the first of the following that matches:
* If a file by the specified path exists relative to the target's source
directory, use that file.
* If policy :policy:`CMP0115` is not set to ``NEW``, try appending each
known source file extension to the path and check if that exists
relative to the target's source directory.
* Repeat the above two steps, this time relative to the target's binary
directory instead.
Note that the above decisions are made at generation time, not build time.
See the :manual:`cmake-buildsystem(7)` manual for more on defining
buildsystem properties.