Skip to content

core: add cmake build support#11789

Draft
sielicki wants to merge 2 commits intoofiwg:mainfrom
sielicki:cmake
Draft

core: add cmake build support#11789
sielicki wants to merge 2 commits intoofiwg:mainfrom
sielicki:cmake

Conversation

@sielicki
Copy link
Copy Markdown
Contributor

@sielicki sielicki commented Jan 5, 2026

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.

@sielicki sielicki force-pushed the cmake branch 4 times, most recently from ec416d6 to 153b8a8 Compare January 6, 2026 16:18
@sielicki sielicki marked this pull request as ready for review January 6, 2026 16:42
Copilot AI review requested due to automatic review settings January 6, 2026 16:42
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
@j-xiong
Copy link
Copy Markdown
Contributor

j-xiong commented Jan 14, 2026

The vcxproj files are used by Appveyor CI.

@sielicki
Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants