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

Enhance Cython integration: Add support for c++ mode, use hostpython3-provided Cython, allow pinning of specific Cython version in recipe #957

Merged
merged 6 commits into from
Jan 6, 2025

Conversation

misl6
Copy link
Member

@misl6 misl6 commented Jan 5, 2025

Even if the target is switching to almost-fully-isolated builds for each recipe and take advantage of the additions made to Python3.13, this PR enhances our Cython integration with some features required for kivy/kivy development (current master branch requires c++ support on Cython files).

This PR also solves incompatibility issues related to cython-generated files when the Python version used to invokate the toolchain is different from the target one, by using the self-built hostpython3.

This PR does the following:

  • Removed Cython from installation requirements, any "cythonization" will be performed by hostpython3.
  • The appropriate Cython version will be installed by hostpython3 when required, as is now included into hostpython_prerequisites.
  • The required Cython version can now be set via hostpython_prerequisites, this way every recipe can target its own specific Cython version.
  • Support for recognizing, cythonizing and building/linking c++ files produced by Cython has been added.
  • By default, Cython version used by CythonRecipe is 3.0.11. All recipes that are likely incompatible with Cython 3.x.x has been set to use Cython 0.29.37

⚠️ As all the CythonRecipe based-recipes have been touched, and some of these recipes are likely old and unmaintained, a failure during the CI/CD run is expected to happen.

…n3, and allow configuring Cython version to be used in recipe
@misl6 misl6 changed the title Enhance Cython integration: Add support for c++ mode, use hostpython3-provided Cython, allow pinning of specific Cython version in recipe. Enhance Cython integration: Add support for c++ mode, use hostpython3-provided Cython, allow pinning of specific Cython version in recipe Jan 5, 2025
AndreMiras
AndreMiras previously approved these changes Jan 5, 2025
Copy link
Member

@AndreMiras AndreMiras left a comment

Choose a reason for hiding this comment

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

This is huge, I didn't know we could, thanks

kivy_ios/toolchain.py Outdated Show resolved Hide resolved
kivy_ios/tools/cpplink Outdated Show resolved Hide resolved
@misl6 misl6 merged commit 263bc44 into kivy:master Jan 6, 2025
9 checks passed
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