8000 Releases · ppcg-gpu/imath · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Releases: ppcg-gpu/imath

v1.33 built with CMake and CTest

03 May 09:28
Compare
Choose a tag to compare

v1.33-cmake (2025-05-03)

This release marks a significant modernization of the project infrastructure, making it easier to build, test, and contribute on all major platforms.

Major Changes

Migration to CMake and CTest

  • The build system has been fully migrated from GNU Make and bash scripts to CMake for configuration and building, and CTest for running tests. This modernizes the project, improves cross-platform support, and simplifies CI integration.
  • The old Makefile and bash-based test logic have been removed. All build and test logic is now described in CMakeLists.txt and supporting CMake modules.

Notable Enhancements

  • CMake Build System Introduced

    • Added a comprehensive CMakeLists.txt supporting all core libraries, test executables, and example programs.
    • Created CMake modules for configuration, test orchestration, and package config file generation.
    • Updated the documentation and README to reflect the new build and test instructions.
  • CTest Integration

    • All unit and compatibility tests are now registered and run via CTest, enabling standard test reporting and integration with CI systems.
  • GMP Compatibility Improvements

    • Added cmake/FindGMP.cmake to robustly locate the GMP library, especially on macOS where pkg-config may not suffice.
    • Enhanced cmake/GmpCompatTest.cmake to pass correct library filenames to test scripts via environment variables, ensuring correct dynamic linking on all platforms.
  • CI Workflow Modernization

    • Updated GitHub Actions workflow to use CMake and CTest for all platforms.
    • Fixed ARM runner issues by installing CMake and Ninja via apt-get to ensure correct architecture.
    • Added Homebrew-based installation of GMP on macOS runners to enable compatibility tests.
  • Build and Test Cleanups

    • Removed duplicate builds of the pi example to avoid conflicts with Ninja and CMake.
    • Fixed build errors in Release mode for several source files.
    • Ensured that all test and example binaries are built and run consistently across Linux, macOS, and ARM platforms.

Other Improvements

  • Improved cross-platform compatibility for both build and test phases.
  • Enhanced maintainability by consolidating build and test logic in CMake.
  • Added and updated CMake modules for configuration, test generation, and environment setup.
0