Conversation
ec416d6 to
153b8a8
Compare
There was a problem hiding this comment.
Pull request overview
This PR adds CMake build system support to libfabric as a unified alternative to the existing autotools build system and Visual Studio project files. The changes remove Windows vcxproj files and replace them with cross-platform CMakeLists.txt files for all providers, utilities, and the core library. CMake support covers all platforms (Linux, Windows) and all providers.
Key changes:
- Added comprehensive CMake build files for ~20 providers and core utilities
- Removed legacy vcxproj/sln files (~6000 lines) in favor of CMake
- Updated RPM spec file to use CMake instead of autotools
- Added CMake package configuration for downstream consumers
Reviewed changes
Copilot reviewed 95 out of 95 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| util/CMakeLists.txt | Defines utility programs (fi_info, fi_strerror, fi_pingpong, fi_mon_sampler) |
| prov/*/CMakeLists.txt | Provider-specific build configurations (verbs, usnic, ucx, tcp, sockets, shm, sm2, rxm, rxd, psm2/3, opx, mrail, lpp, lnx, efa, cxi, udp, hook/*) |
| prov/CMakeLists.txt | Top-level provider build orchestration |
| libfabric.spec.in | Updated RPM packaging to use CMake with ninja |
| cmake/*.cmake.in | Package config files for CMake integration |
| cmake/Find*.cmake | CMake find modules for dependencies (UUID, Valgrind, XPMEM) |
| .vcxproj | Removed Visual Studio project files |
| *.sln | Removed Visual Studio solution files |
| include/windows/config.h | Removed Windows config header |
| libfabric.def | Removed Windows module definition file |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Add cmake support, as a unified alternative to the existing 10kloc (!) autotools build system, and the existing vcxproj windows build files, with support for all providers and platforms. Autotools support is not removed, but vcxproj files are. Signed-off-by: Nicholas Sielicki <opensource@nslick.com>
Signed-off-by: Nicholas Sielicki <opensource@nslick.com>
|
The vcxproj files are used by Appveyor CI. |
the goal is to replace vcxproj usage with cmake. I tried to fix that here but I'm still having issues. |
Add cmake support, as a unified alternative to the existing 10kloc (!) autotools build system, and the existing vcxproj windows build files, with support for all providers and platforms. Autotools support is not removed, but vcxproj files are.