You can also use option DEPFILE of add_custom_command for more fine-grain dependency management.
Be aware that DEPFILE is only supported by Ninja until 3.19. Makefiles generators were added in 3.20. And Xcode will be available in next release (3.21).
It appears that this requires that we need to explicitly add a custom command for each and every file in the product? That CMake doesn’t have an equivalent to the pattern paradigm in make? Am I correct?
No, there’s no pattern support (because that would still only support the Makefiles generators). I recommend wrapping it up in a CMake function then calling it in a loop.