VERIFY_*_HEADER_SETS: Create verification targets even when empty
Always create `<target>_verify_*_header_sets` targets and the aggregate
`all_verify_*_header_sets` utility targets when the corresponding
property is enabled, even when no matching headers exist.
When headers exist, an OBJECT library is created as before. When no
headers are found, a UTILITY target is created instead to avoid
warnings from tools like Xcode's libtool about empty static libraries.
Update documentation with `.. versionchanged:: 4.4` directives, update
tests, and add a release note.
Fixes: #27685
17 files changed