C++ Project Organization
How to make large-scale coding easy and fun

For the past week I've been writing a program to integrate all my old demos and 3D projects under source into a single framework. The first step of the process was putting all these projects under source control. Once I had a way to track and rollback changes it was time to clean up my projects.

This article focuses on project structure—the directory hierarchy, make files, etc. I'll assume you already know the benefits of organizing your code into separate headers & source [1].

There's a couple of issues we need to find solutions for:

Issues Specific to C++

C++ has the "distinction" of supporting separate source and header files. While this has the often-cited benefits of speedy compilation and easier integration with foreign function interface generators.

References

  1. Ben "Kylotan" Sizer. Organizing Code Files in C and C++.