It's much nicer and less error prone to just use add_subdirectory to establish the include directory.
Hide the GNUInstallDirs module by placing it in the helper module. The intent being that the main CMakeLists.txt should have a little code as possible. So that readers can quickly understand the project.
Use include_guard() when available in cmake 3.10+
Co-authored-by: Juan Ramos <juanr0911@gmail.com>