Skip to content

Boost unification#164

Merged
h-vetinari merged 246 commits intoconda-forge:mainfrom
h-vetinari:unify
Sep 27, 2023
Merged

Boost unification#164
h-vetinari merged 246 commits intoconda-forge:mainfrom
h-vetinari:unify

Conversation

@h-vetinari
Copy link
Copy Markdown
Member

@h-vetinari h-vetinari commented May 3, 2023

Implementation for conda-forge/boost-cpp-feedstock#137

Closes #53
Closes conda-forge/boost-cpp-feedstock#25

As discussed in that issue, this PR:

  • unifies the feedstocks for boost & boost-cpp in this feedstock (due to better name)
  • renames boost-cpp -> libboost & boost -> liboost-python (maintaining the old output names as wrappers for now)
  • adds a run-export to the new libboost (while boost-cpp stays unchanged without one)
  • introduces a header-only version libboost-headers that will fill the role of the run-export-less boost-cpp

The history of https://github.com/conda-forge/boost-cpp-feedstock is preserved through a merge (after some preparatory commits to reduce collisions). This makes the PR look unwieldy but the changes before the merge aren't very interesting. The upside is that this allows digging into the full archeology in one place (with the only snag that GH now resolves the PR links incorrectly).

Implementation notes:

  • libboost depends on libboost-headers, so the headers are really only packaged once
  • I tried but quickly gave up to build all three outputs at once; I believe this would be hard both because boost's b2 built tool doesn't seem to support only-build-don't-install so well, and more importantly, because we need to build libboost-python per python version.
  • Therefore, libboost & libboost-headers are built only once in build.sh / bld.bat (essentially the build scripts from boost-cpp), with the only substantial change that they're now "installed" into a temporary prefix from which we can then actually install the respective files into our $PREFIX per output
  • libboost-python essentially keeps the build scripts of boost, only that we now reuse the b2 that was bootstrapped during the global build phase (this now allows full cross-compilation; previously ppc was emulated here).
  • There's still substantial duplication between the (configuration parts of) build-py.{sh,bat} and the global build scripts, but for now I've tried to keep the changes to the respective histories to a minimum.
  • OTOH, the tests should be cleaned up nicely now.
  • Switched libboost-python to only package dynamic libs, and add a run-export. Also, while it previously depended on the full boost-cpp, the link-check says the libs aren't necessary, so switch to depend on libboost-headers instead.

PTAL @conda-forge/boost @conda-forge/boost-cpp
CC @conda-forge/core

Travis-CI on github.com/conda-forge/staged-recipes and others added 30 commits January 6, 2017 17:01
Since py35 and py36 both use the same vc version, it's not necessary
to build boost-cpp in both versions. This disables py36 builds.
MNT: Re-rendered with conda-smithy 2.0.0 [ci skip]
Fix checking for non-existence of python headers
…render_master

MNT: Re-render the feedstock [ci skip]
Fix missing include in boost::serialization
h-vetinari and others added 2 commits September 20, 2023 20:18
Co-authored-by: Marcel Bargull <mbargull@users.noreply.github.com>
@h-vetinari
Copy link
Copy Markdown
Member Author

We discussed the naming in the core call today, seems that everyone's fine to move forward with -devel. This PR is IMO ready to merge, and I'd like to ask for any final thoughts/concerns @conda-forge/core @conda-forge/boost @conda-forge/boost-cpp

@h-vetinari
Copy link
Copy Markdown
Member Author

This PR is IMO ready to merge, and I'd like to ask for any final thoughts/concerns

Alright, it's been almost a week, let's get this in. Thanks everyone!

@h-vetinari h-vetinari merged commit 06322b2 into conda-forge:main Sep 27, 2023
@h-vetinari h-vetinari deleted the unify branch September 27, 2023 00:13
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.

Unify with boost-feedstock Consolidate with boost-cpp