Optimized makefile generation by caching the CompilerPtr, BuildConfigPtr and ProjectSettingsPtr objects