Skip to content

boost: Remove execution monitors from unit_test_framework dependencies - #30932

Open
harmenwierenga wants to merge 1 commit into
conan-io:masterfrom
harmenwierenga:boost/erroneous_test_dependencies
Open

boost: Remove execution monitors from unit_test_framework dependencies#30932
harmenwierenga wants to merge 1 commit into
conan-io:masterfrom
harmenwierenga:boost/erroneous_test_dependencies

Conversation

@harmenwierenga

Copy link
Copy Markdown

Summary

Changes to recipe: boost/all

Motivation

fixes #30926

Details

The boost recipe has a complicated mechanism for discovering the dependencies between different Boost libraries. The CMakeDeps generator forwards these dependencies to consumers when linking to a shared version of Boost.

I removed the manually added lines to rebuild-dependencies.py that added prg_exec_monitor and test_exec_monitor to the dependencies of unit_test_framework. These are three different top level drivers, not dependencies of each other.

I managed to run the rebuild-dependencies.py script after the change. This generates the dependencies/yml files for all boost versions. It turns out that there were also manual edits to these files that were committed to this repo, so I kept those differences with the generated result, only removing the two execution monitors.



Add a 👍 reaction to pull requests you find important to help the team prioritize, thanks!

@uilianries uilianries self-assigned this Sep 9, 2026

@uilianries uilianries left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@harmenwierenga Hello! Thank you for pushing this fix.

That's something interesting. Your changes look correct, there is no interdependency between those libraries: https://github.com/boostorg/test/blob/boost-1.89.0/build/Jamfile.v2

I also checked Boost.Test 1.55 and 1.91 and both follow same rule under its b2 and cmake.

Also, checking with otool, it proves the case too:

$ otool -L libboost_unit_test_framework.dylib 
libboost_unit_test_framework.dylib:
	@rpath/libboost_unit_test_framework.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 2000.63.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1356.0.0)
$ otool -L libboost_prg_exec_monitor.dylib 
libboost_prg_exec_monitor.dylib:
	@rpath/libboost_prg_exec_monitor.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 2000.63.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1356.0.0)

That rule has been there since the beginning, +6 years ago. Interesting how it only came up now. Let's wait for the CI result.

@uilianries uilianries left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM.

Boost.Test builds those libraries, but they are independent. This is clear not only in its b2 recipe (consumed by Conan), but also reflected in the cmake recipe as well:

Tested after building using otool (see previous comment).

@harmenwierenga

Copy link
Copy Markdown
Author

Thank you for checking it Uilian!

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.

[package] boost/1.90.0: Recipe incorrectly adds Boost.Test execution monitors as dependencies of unit_test_framework

2 participants