Releases: ppcg-gpu/imath
Releases · ppcg-gpu/imath
v1.33 built with CMake and CTest
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 inCMakeLists.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.
- Added a comprehensive
-
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.
- Added
-
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.
- Removed duplicate builds of the
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.