It may happen that a file all_files.cpp had been created in-source by a previous in-source build. We certainly do not want to include that file in the new all_files.cpp, because .cpp files would be included twice, and that breaks the one-definition rule (ODR). Remember: in-source build is evil...