Skip to content

Conversation

@dsnopek
Copy link
Collaborator

@dsnopek dsnopek commented Dec 18, 2025

This is the next "godot-cpp v10" PR - it builds on top of:

This one adds back support for Godot 4.3, and includes the extension_api.json for 4.3, such that you can build via scons api_version=4.3 out-of-the-box

This one was the trickiest so far, and will definitely need more testing before we can merge it. It's also made me think that perhaps supporting back to Godot 4.3 is far enough?

The changes we'd need to make for Godot 4.2 and 4.1 would be pretty extensive (given how much stuff we changed back then) and probably not all that worth it, given how old those versions are.

Also, Godot 4.3 is the earliest version that supports loading documentation from a GDExtension, which seems like a good reason for targeting that as a minimum.

Marked as DRAFT because it depends on the other "godot-cpp v10" PRs

@dsnopek dsnopek added this to the 10.x milestone Dec 18, 2025
@dsnopek dsnopek requested a review from a team as a code owner December 18, 2025 15:02
@dsnopek dsnopek added the enhancement This is an enhancement on the current functionality label Dec 18, 2025
@dsnopek dsnopek marked this pull request as draft December 18, 2025 15:06
@dsnopek dsnopek force-pushed the v10-support-43 branch 5 times, most recently from 92b8f48 to 107bbac Compare December 20, 2025 14:32
@dsnopek dsnopek added the cmake label Dec 20, 2025
@dsnopek dsnopek changed the title [DRAFT] Add back support for Godot 4.3 Add back support for Godot 4.3 Jan 15, 2026
@dsnopek dsnopek marked this pull request as ready for review January 15, 2026 12:46
@dsnopek dsnopek requested a review from a team as a code owner January 15, 2026 12:46
@dsnopek
Copy link
Collaborator Author

dsnopek commented Jan 15, 2026

Taking out of DRAFT now that #1898 is merged!

Copy link
Member

@Ivorforce Ivorforce left a comment

Choose a reason for hiding this comment

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

Same as last version, LGTM!

I've got a GDExtension that I'm planning to keep at 4.3 for the time being, so I'm hoping to test this soon. But no need to wait for that, if I run into issues I can open follow-up PRs with fixes.

#else
// Note: This isn't safe, because the object may have already been freed, but it's the best we
// can do in Godot 4.3 and earlier.
Object *obj = operator Object *();
Copy link
Member

@Ivorforce Ivorforce Jan 15, 2026

Choose a reason for hiding this comment

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

Isn't get_validated_object available in 4.3? Edit: Ah, it depends on operator ObjectID()...

Copy link
Collaborator Author

@dsnopek dsnopek Jan 15, 2026

Choose a reason for hiding this comment

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

Yeah, we didn't have a way to get the ObjectID from the Variant back in 4.3 and earlier, which is why variant_get_object_instance_id was added to the GDExtension interface in 4.4

@dsnopek dsnopek merged commit f53272d into godotengine:master Jan 15, 2026
19 checks passed
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