1. Mar 24, 2023
    • Marc Vef's avatar
      Merge branch 'amiranda/improve-cmake-dependency-management' into 'master' · a27f518b
      Marc Vef authored
      Improve cmake
      
      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.
      
      Closes #211
      
      Closes #211 and #249
      
      See merge request !143
      a27f518b
    • Alberto Miranda's avatar
      eaed52ff
    • Alberto Miranda's avatar
      Update CHANGELOG.md · b5090ccd
      Alberto Miranda authored
      b5090ccd
    • Alberto Miranda's avatar
      CMake: Better handling of external submodules · d57e6c09
      Alberto Miranda authored
      The function include_from_source() now checks if the source directory
      for a external dependency is empty. If so, it will provide instructions
      for the user to solve the issue (such as properly initializing
      submodules).
      d57e6c09
  2. Mar 17, 2023
  3. Mar 16, 2023
    • Alberto Miranda's avatar
      Merge branch 'amiranda/252-ci-simplify-coverage-scripts' into 'master' · 6d4b20f2
      Alberto Miranda authored
      Resolve "CI: Simplify coverage scripts"
      
      This MR simplifies coverage generation in the following ways:
      
      - Replaces the old `scripts/ci/coverage.sh` script with a new
       `scripts/dev/coverage.py` written in Python, making it more robust 
       and simpler to modify if needed.
      - Adds specific CMake targets for generating coverage reports 
        directly from CMake.
      - Adds specialized CMake presets to make it simpler to configure
        the different builds required to generate coverage information.
      - Replaces `gcovr` with `lcov` + `lcov_cobertura`, since `gcovr` 
        exhibited some errors that were difficult to track down and 
        `lcov` worked out of the box.
      - Adds HTML documentation about the coverage generation in 
        `docs/sphinx/devs/coverage.md`
      
      This MR also updates the `v0.9.2` Docker images to update CMake
      and include coverage-related packages. The `coverage` image in 
      particular is no longer needed and has been removed.
      
      Closes #252 #256 #257 #258
      
      Closes #258, #257, #256, and #252
      
      See merge request !163
      6d4b20f2
    • Alberto Miranda's avatar
      CI: Reorganize jobs · bc235cf5
      Alberto Miranda authored
      - Rename job `coverage:zerocount` to `coverage:baseline`
      - Move `coverage:baseline` job to `report` stage
      bc235cf5
    • Alberto Miranda's avatar
      Update CHANGELOG.md · f2feceb6
      Alberto Miranda authored
      f2feceb6
    • Alberto Miranda's avatar
      CMakePresets: Modify `default` profile · 26df04bb
      Alberto Miranda authored
      GKFS_BUILD_TESTS and GKFS_INSTALL_TESTS are now set to `false` by
      default.
      26df04bb
  4. Mar 15, 2023