OBJECT collections in CMake don't generate any artifacts so these
are safe to hoist out and define globally.
library OBJECT targets are just a list of filenames. It can be useful for
other projects to include lists of sources directly regardless of build mode
(shared, static, or library).