Improve cmake

Merged Alberto Miranda requested to merge amiranda/improve-cmake-dependency-management into master

This MR improves the current CMake scripts in the following manner:

  • Dependency management is now handled more consistently: system dependencies are found using find_package(), whereas source-only dependencies are found using include_from_source(). This new function integrates a dependency provided its source code is available. If it's not, it will try to download it from its git repository if it was defined.
  • All external dependencies are now searched for in the top-level CMakeLists.txt.
  • More consistent use of targets (we are closer to 100% modern CMake).
  • Adds the gkfs_feature_summary() to allow printing a summary of all GekkoFS configuration options and their values.
  • Moves all option definitions to CMake/gfks-options.cmake, so that the top-level CMakeLists.txt is cleaner. It also defines the gkfs_define_option() and gkfs_define_variable() functions to integrate the definition of options/variables with the automated reporting provided by gkfs_feature_summary().

It also fixes #249 (closed).

Closes #211 (closed)

Edited by Marc Vef

Merge request reports