Skip to content

Conversation

@dsnopek
Copy link
Collaborator

@dsnopek dsnopek commented Dec 17, 2025

This builds on top of #1895, and is a replacement for our usual update of the extension_api.json file for Godot 4.6 (which we usually start doing at -beta1, so this also adds the extension_api.json file for 4.6-beta1)

The idea, is that we'll include extension_api.json files for all the Godot versions that godot-cpp v10 is compatible with, and developers can specify scons api_version=4.5 (for example) to select an earlier API version. This is something that other GDExtension bindings do as well, for example, the Rust bindings.

This is marked as a DRAFT because it depends on #1895 (the first godot-cpp v10 PR) which allows godot-cpp to be compatible with either Godot 4.5 or 4.6

@dsnopek dsnopek added this to the 4.x milestone Dec 17, 2025
@dsnopek dsnopek requested a review from a team as a code owner December 17, 2025 15:03
@dsnopek dsnopek added the enhancement This is an enhancement on the current functionality label Dec 17, 2025
@dsnopek dsnopek marked this pull request as draft December 17, 2025 15:03
@dsnopek dsnopek modified the milestones: 4.x, 10.x Dec 17, 2025
@dsnopek
Copy link
Collaborator Author

dsnopek commented Dec 18, 2025

After working on #1898 and #1899, I'm seeing how tricky it is to test these, so I think we should have the CI test all supported versions, and this PR is a good one to start that in

So, that's something I'll add when I have a chance!

@dsnopek dsnopek force-pushed the select-api-version branch 2 times, most recently from 7df6252 to 9f0acbf Compare December 19, 2025 13:24
@dsnopek
Copy link
Collaborator Author

dsnopek commented Dec 19, 2025

I've updated the CI so that it'll build for each supported API version (only 4.5 and 4.6 in this PR - more are added in the follow-up PRs), and then run the tests using each supported version of Godot.

So, if it builds for 4.6, it just tests that against master. But if it builds for 4.5, it'll run the tests on 4.5 and then master. And in the PR that adds support for 4.4, it'll run that build against 4.4, 4.5 and master. And so on...

This is all I plan to add to this PR, however, it'll remain marked as DRAFT because the PR it depends on still isn't merged.

@dsnopek
Copy link
Collaborator Author

dsnopek commented Dec 20, 2025

Turns out I had one more thing to add: cmake support!

Seems to work in my testing, but I really don't know what I'm doing with cmake :-)

cc @enetheru

@enetheru
Copy link
Collaborator

Seems to work in my testing, but I really don't know what I'm doing with cmake :-)

Looks good to me. None of the changes to CMake add additional complexity, nothing raises my eyebrows. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cmake enhancement This is an enhancement on the current functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants