Many software projects ship with both a UNIX makefile (or Makefile.in) and a Microsoft Visual Studio workspace, requiring you to constantly keep both build systems up to date and consistent with each other. Targeting additional build systems (Borland or Code-Warrior, for instance) requires even more custom copies of these files, creating an even bigger problem. This problem is compounded if you try to support optional components, such as including JPEG support if libjpeg is available on the system. CMake, the build manager we present here, consolidates these different files into one simple and easy to understand file format.
展开▼