BYPRODUCTS is poorly documented in add_custom_commands/targets
The current documentation for OUTPUTs and BYPRODUCTS for add_custom_command and add_custom_targets don't really explain how they differ and how to use them. Among other issues, it seems to imply that all BYPRODUCTS should also be listed under OUTPUTS since they seem to also fit the description of "output files the command is expected to produce".
I stumbled on docs for CMP0058 and it does a good job of explaining the differences between OUTPUTs and BYPRODUCTS and how to use the two effectively. It would be nice to either link to that from add_custom_command/target or to distill the relevant content and inline it.