Skip to content

cmake: Remove Boost::system from UHDConfig.cmake component list - #939

Open
doronbehar wants to merge 1 commit into
EttusResearch:masterfrom
doronbehar:fix/uhdconfig-boost-system
Open

cmake: Remove Boost::system from UHDConfig.cmake component list#939
doronbehar wants to merge 1 commit into
EttusResearch:masterfrom
doronbehar:fix/uhdconfig-boost-system

Conversation

@doronbehar

Copy link
Copy Markdown

Description

Boost.System has been header-only since Boost 1.69, and as of Boost 1.89 its CMake package config was removed entirely.

This makes the find_dependency(Boost ... COMPONENTS ... system ...) call in the installed UHDConfig.cmake fail on any downstream project that does find_package(UHD) while linked against Boost >= 1.89.

Timeline of how this happened, for reference:

  • Up to and including v4.9.0.1, UHDConfig.cmake.in had no Boost dependency check at all.
  • ab724a3 introduced the find_dependency(Boost ... COMPONENTS ... system ...) call here, to correctly declare Boost as a transitive dependency of the newly added UHD::uhd imported target.
  • c45c296 fixed UHD's own build to stop requiring Boost::system, in response to it being dropped as of Boost 1.89. That commit did not touch UHDConfig.cmake.in, which had only just gained its own separate Boost::system reference ten days earlier via ab724a3, and so was missed.
  • v4.10.0.0 ships with both commits, making it the first release where UHDConfig.cmake.in's Boost dependency check exists but still lists system, breaking find_package(UHD) for any consumer linked against Boost >= 1.89.

Which devices/areas does this affect?

Packaging & Distribution.

Testing Done

Built gnuradio, and configuring the gr-uhd component has detected the UHD package correctly.

Checklist

  • I have read the CONTRIBUTING document.
  • My code follows the code style of this project. See CODING.md.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes, and all previous tests pass.
  • I have checked all compat numbers if they need updating (FPGA compat,
    MPM compat, noc_shell, specific RFNoC block, ...)

Boost.System has been header-only since Boost 1.69, and as of Boost 1.89
its CMake package config was removed entirely.[1]

This makes the `find_dependency(Boost ... COMPONENTS ... system ...)`
call in the installed `UHDConfig.cmake` fail on any downstream project
that does `find_package(UHD)` while linked against `Boost >= 1.89`.

Timeline of how this happened, for reference:

- Up to and including v4.9.0.1, UHDConfig.cmake.in had no Boost
  dependency check at all.
- ab724a3 introduced the
  `find_dependency(Boost ... COMPONENTS ... system ...)` call here, to
  correctly declare Boost as a transitive dependency of the newly added
  `UHD::uhd` imported target.
- c45c296 fixed UHD's own build to stop
  requiring `Boost::system`, in response to it being dropped as of Boost
  1.89. That commit did not touch `UHDConfig.cmake.in`, which had only
  just gained its own separate `Boost::system` reference ten days
  earlier via ab724a3, and so was
  missed.
- `v4.10.0.0` ships with both commits, making it the first release where
  `UHDConfig.cmake.in`'s Boost dependency check exists but still lists
  `system`, breaking `find_package(UHD)` for any consumer linked against
  Boost >= 1.89.

[1]: boostorg/system@7a495bb
@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

@doronbehar

Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

@doronbehar

Copy link
Copy Markdown
Author

recheck

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.

1 participant