Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for modular build structure. #73

Open
wants to merge 22 commits into
base: develop
Choose a base branch
from

Conversation

grafikrobot
Copy link
Member

@grafikrobot grafikrobot commented Jul 20, 2024

This is part of the effort to make the Boost libraries "modular" for build and consumption. See https://lists.boost.org/Archives/boost/2024/01/255704.php and https://github.com/grafikrobot/boost-b2-modular/blob/b2-modular/README.adoc for more information.

This PR depends on the following other PRs being merged to both develop and master branches of the respective repos:

This PR will be changed to ready for review, i.e. not draft, when the above are merged. Do not merge this one until that time.

@grafikrobot grafikrobot marked this pull request as ready for review August 18, 2024 15:27
@grafikrobot
Copy link
Member Author

Please review and merge this PR at your earliest convenience.

@grafikrobot
Copy link
Member Author

@zajo replying here as it's easier for me to keep track of questions/issues..

I use b2 only to build the unit tests, as long as this functionality doesn't break, I don't think LEAF needs this. What user would benefit from this change and how?

Some benefits:

  • It makes it possible for user to directly consume the library from B2 in a modular way, which int he case of LEAF would be a standalone mode since it doesn't have public Boost dependencies.
  • It makes it easier to package the library in a modular way. I.e. vcpkg and Conan wont have to do heroics to modularize the Boost release. As modular use will be directly supported.

I understand that other benefits from other use cases might not apply to LEAF because it doesn't depend on other Boost libraries (neither does mine, Predef, and that doesn't even depend on Boost for tests). But if at some future point another Boost library, or perhaps a non-Boost library, depends on LEAF and uses B2 it will need the public declaration of the project and project target to make it work (to add the include dir path and any build requirements).

This generally brings B2 on par with what's in the CML. Hence if you think having a CML is useful.. Then having this PR is useful for the same reasons.

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