When compiling the complete application, the large number of files causes the input file for a Ninja build (text response file) to become too large on some configurations. Move command features into a separate library to reduce the total file count per project/library.