Globbing for source files is problematic because if a source file is
added or removed, the configuration won't be run again, and so the build
won't pick up on the added or removed file until the next configuration.
cmake's help explicitly recommends against the use of file(GLOB) to
collect a list of source files for the same reason. Switch to an
explicit list of files.
The glob for headers is left intact, partly because there are a ton of
them (courtesy of using GLOB_RECURSE), and partly because it shouldn't
affect building, since the header dependency tracking is handled
separately by cmake.
These globs should be fixed as well.