Skip to content

Merge Request: Update CMake for Improved Dependency Management

Alberto Merino Risueño requested to merge (removed):cmake_refactor into Development

Merge Request: Update CMake for Improved Dependency Management

Description

This merge request aims to enhance our build process by updating the CMake configuration to optimize the download and integration of the Google Test library. The key changes in this update include:

  1. Efficient Dependency Download:

    • The CMake configuration has been revised to streamline the download process of Google Test dependencies. This optimization not only improves build times but also ensures a more efficient and reliable dependency management system.
  2. Cleaner Codebase:

    • The updated CMake script contributes to a cleaner and more maintainable codebase. By leveraging the improved dependency management capabilities, we reduce the need for additional scripts or manual interventions during the build process. This, in turn, enhances the overall readability and organization of our code.
  3. Static Library Integration:

    • The merge includes the configuration to add libtopgen as a static library. This ensures that the library is integrated seamlessly into our project without introducing unnecessary complexities associated with dynamic linking.
  4. Continuous Integration Updates:

    • The CI pipeline has been updated to accommodate the new requirements introduced by the CMake changes. This ensures that the build process remains consistent across different environments and platforms.

Benefits

  • Improved Build Efficiency: The optimized dependency download process enhances build times, contributing to a more efficient development workflow.

  • Simplified Maintenance: The cleaner codebase reduces the need for additional build scripts, making it easier to maintain and understand the project structure.

  • Static Library Integration: The inclusion of Google Test as a static library simplifies deployment and avoids potential compatibility issues associated with dynamic linking.

Testing

  • Local Build: Verified that the project builds successfully on a local development environment.
  • Unit Tests: Ensured that all unit tests pass with the updated Google Test library.
  • CI Pipeline: Validated that the CI pipeline runs successfully with the new CMake configuration.

Additional Notes

Please review the changes and provide any feedback or concerns. This update is designed to enhance our development process and maintain a clean and efficient codebase.

Also this change make possible to add in the future the library as a sub-project seamlessly just by using the fetchContent feature of cmake.

Thank you for your attention and collaboration.

cc: @cmedrano

Merge request reports