Skip to content

Conversation

@mayeut
Copy link
Contributor

@mayeut mayeut commented Nov 30, 2024

This PR declares a custom build backend for the CMake PyPI distrbution. The following are included:

  • removes the Ninja PyPI distribution build dependency by default in order to break a build cycle (cmake -> ninja -> cmake) when binary wheels are not available and Ninja is not present/too old on the build system. (this is fix: do not require Ninja #566)
  • removes the CMake PyPI distrbution build dependency by default in order to break a build cycle (cmake -> cmake) when binary wheels are not available and CMake is not present/too old on the build system.
  • Uses a bootstrapped CMake in order to build itself when CMake is not present/too old on the build system.

Relates to #503 (comment).

The bootstrap build might not be efficient as we're building CMake twice but that's the easiest way I could think of and hopefully, those kind of builds should not happen that often.

close #566

@mayeut mayeut force-pushed the bootstrap branch 6 times, most recently from e3a7558 to 77917ba Compare November 30, 2024 19:54
@mayeut mayeut changed the title WIP fix: bootstrap build on Unix fix: bootstrap build Nov 30, 2024
@mayeut mayeut marked this pull request as ready for review November 30, 2024 20:09
Copy link
Contributor

@henryiii henryiii left a comment

Choose a reason for hiding this comment

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

Okay to try it on the current release.

This should prevent bootstrapping issues between CMake PyPI distribution and Ninja PyPI distribution when building either one from sources.
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.

2 participants