CMP0105 documentation is incorrect
The documentation for CMP0105 is inconsistent, and therefore incorrect.
Link here: https://cmake.org/cmake/help/latest/policy/CMP0105.html#policy:CMP0105
It currently reads as follows:
CMP0105
New in version 3.18.
LINK_OPTIONS and INTERFACE_LINK_OPTIONS target properties are now used for the device link step.
In CMake 3.17 and below, link options are not used by the device link step.
The OLD behavior for this policy is to ignore the link options.
The NEW behavior of this policy is to use the link options during the device link step.
This policy was introduced in CMake version 3.17. Use the cmake_policy() command to set it to OLD or NEW explicitly. Unlike many policies, CMake version 3.26.3 does not warn when this policy is not set and simply uses OLD behavior.
Note The OLD behavior of a policy is deprecated by definition and may be removed in a future version of CMake.
Suggested changes:
- The first line states "New in version 3.18", then the last paragraph states "This policy was introduced in CMake version 3.17". I suspect this should read "3.18" throughout,
- The last paragraph states that "Unlike many policies, CMake version 3.26.3 does not warn when this policy is not set and simply uses OLD behavior". The note at the end says that the OLD behaviour is deprecated by definition. I suspect that CMake 3.26.3 actually defaults to NEW, although I haven't tested it,
- I was caught out by the HOST_LINK genex working fine with this policy set to OLD, but the DEVICE_LINK genex not working at all. This is implied by the current documentation, but it might be nice to explicitly call out that DEVICE_LINK will not work without this policy set to NEW.
Thanks, Tom