Don’t Repeat Yourself

If you are already familiar with ExternalProject_Add and have written some super-build projects before, you are probably already aware that writing a complete solution with toolchains, build types, build options, parallel jobs, forwarding of compiler flags, and making it work correctly for all generators is not a trivial task.

Hunter stores ExternalProject_Add recipes as a set of templates. Once written, formula (build scheme) can be reused by other projects without copying the collection of super-build files (DRY principle). When a new package with a new scheme is introduced, all you need to do is just update the SHA1/URL of HunterGate command.