The new modular build system of OTB 5 organizes code into self-contained modules that have explicit dependencies. This improves on the previous system where code was organized into directories without clear dependencies, making it difficult for newcomers to add functionality. The new system uses CMake best practices and builds only enabled modules and their dependencies, allowing users to select what they want/need to build. Modules, including third parties, are now always built externally rather than having code contained within OTB.