diff options
author | Robert Maynard <rmaynard@nvidia.com> | 2024-01-05 16:58:04 (GMT) |
---|---|---|
committer | Robert Maynard <rmaynard@nvidia.com> | 2024-01-23 13:50:38 (GMT) |
commit | 0cfd8fe8ad01f05ba95f51c4d6ce2f8774de3f5c (patch) | |
tree | 74714e2a2374dedb5738507329872f5c5e0b3ade /Help/policy | |
parent | eee631bb8a94a5b39c01c11671183538497824d7 (diff) | |
download | CMake-0cfd8fe8ad01f05ba95f51c4d6ce2f8774de3f5c.zip CMake-0cfd8fe8ad01f05ba95f51c4d6ce2f8774de3f5c.tar.gz CMake-0cfd8fe8ad01f05ba95f51c4d6ce2f8774de3f5c.tar.bz2 |
cmTarget: Don't allow setting read-only properties
Ensure that all documented read-only target properties now produce
errors when trying to set.
Diffstat (limited to 'Help/policy')
-rw-r--r-- | Help/policy/CMP0160.rst | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Help/policy/CMP0160.rst b/Help/policy/CMP0160.rst new file mode 100644 index 0000000..46318ab --- /dev/null +++ b/Help/policy/CMP0160.rst @@ -0,0 +1,39 @@ +CMP0160 +------- + +.. versionadded:: 3.29 + +More read-only target properties now error when trying to set them. + +The :command:`set_target_properties` and :command:`set_property` commands +are intended to error out on all read-only properties. However, CMake 3.28 and +below only did this for the following properties: + +* :prop_tgt:`HEADER_SETS` +* :prop_tgt:`INTERFACE_HEADER_SETS` +* :prop_tgt:`IMPORTED_GLOBAL` +* :prop_tgt:`MANUALLY_ADDED_DEPENDENCIES` +* :prop_tgt:`NAME` +* :prop_tgt:`TYPE` + +This policy enforces the read-only nature of the following target properties: + +* :prop_tgt:`ALIAS_GLOBAL` +* :prop_tgt:`BINARY_DIR` +* :prop_tgt:`CXX_MODULE_SETS` +* :prop_tgt:`IMPORTED` +* :prop_tgt:`INTERFACE_CXX_MODULE_SETS` +* :prop_tgt:`LOCATION` +* :prop_tgt:`LOCATION_<CONFIG>` +* :prop_tgt:`SOURCE_DIR` + +The ``OLD`` behavior for this policy is to only error out for the properties +:prop_tgt:`MANUALLY_ADDED_DEPENDENCIES`, :prop_tgt:`NAME`, and :prop_tgt:`TYPE`. +The ``NEW`` behavior for this policy is to error out on all target properties +that are documented as read-only. + +.. |INTRODUCED_IN_CMAKE_VERSION| replace:: 3.29 +.. |WARNS_OR_DOES_NOT_WARN| replace:: warns +.. include:: STANDARD_ADVICE.txt + +.. include:: DEPRECATED.txt |