File tree 4 files changed +22
-14
lines changed
4 files changed +22
-14
lines changed Original file line number Diff line number Diff line change @@ -338,7 +338,9 @@ jobs:
338
338
os : ubuntu-22.04
339
339
artifact-name : linux-release-nightly
340
340
godot-binary : godot.linuxbsd.template_release.x86_64
341
- rust-extra-args : --release
341
+ # Use `codegen-full-experimental` to make sure that all function tables can be loaded in Godot release builds.
342
+ # If the experimental part causes problems, downgrade to `codegen-full`.
343
+ rust-extra-args : --release --features itest/codegen-full-experimental
342
344
rust-cache-key : release
343
345
344
346
# Linux compat (4.1 disabled, already covered by memcheck)
Original file line number Diff line number Diff line change @@ -141,12 +141,15 @@ pub fn is_godot_type_deleted(godot_ty: &str) -> bool {
141
141
| "MovieWriterPNGWAV"
142
142
| "ResourceFormatImporterSaver"
143
143
=> true ,
144
- // Previously loaded lazily; in 4.2 it loads at the Scene level. See: https://github.com/godotengine/godot/pull/81305
144
+
145
+ // Previously loaded lazily; in 4.2 it loads at the Scene level: https://github.com/godotengine/godot/pull/81305
145
146
| "ThemeDB"
146
147
=> cfg ! ( before_api = "4.2" ) ,
147
- // reintroduced in 4.3. See: https://github.com/godotengine/godot/pull/80214
148
+
149
+ // Reintroduced in 4.3: https://github.com/godotengine/godot/pull/80214
148
150
| "UniformSetCacheRD"
149
151
=> cfg ! ( before_api = "4.3" ) ,
152
+
150
153
_ => false
151
154
}
152
155
}
Original file line number Diff line number Diff line change @@ -60,11 +60,17 @@ pub fn make_sname_ptr(identifier: &str) -> TokenStream {
60
60
pub fn get_api_level ( class : & JsonClass ) -> ClassCodegenLevel {
61
61
// Work around wrong classification in https://github.com/godotengine/godot/issues/86206.
62
62
fn override_editor ( class_name : & str ) -> bool {
63
- cfg ! ( before_api = "4.3" )
64
- && matches ! (
65
- class_name,
66
- "ResourceImporterOggVorbis" | "ResourceImporterMP3"
67
- )
63
+ match class_name {
64
+ // https://github.com/godotengine/godot/issues/103867
65
+ "OpenXRInteractionProfileEditorBase"
66
+ | "OpenXRInteractionProfileEditor"
67
+ | "OpenXRBindingModifierEditor" => cfg ! ( before_api = "4.5" ) ,
68
+
69
+ // https://github.com/godotengine/godot/issues/86206
70
+ "ResourceImporterOggVorbis" | "ResourceImporterMP3" => cfg ! ( before_api = "4.3" ) ,
71
+
72
+ _ => false ,
73
+ }
68
74
}
69
75
70
76
if special_cases:: is_class_level_server ( & class. name ) {
Original file line number Diff line number Diff line change @@ -350,11 +350,8 @@ pub(crate) fn load_class_method(
350
350
351
351
if method. is_null ( ) {
352
352
panic ! (
353
- "Failed to load class method {}::{} (hash {}).\n \
354
- Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced/compatibility.html",
355
- class_name,
356
- method_name,
357
- hash
353
+ "Failed to load class method {}::{} (hash {}).{INFO}" ,
354
+ class_name, method_name, hash
358
355
)
359
356
}
360
357
@@ -421,7 +418,7 @@ pub(crate) fn read_version_string(version_ptr: &sys::GDExtensionGodotVersion) ->
421
418
. to_string ( )
422
419
}
423
420
424
- const INFO : & str = "\n Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/gdext/advanced /compatibility.html" ;
421
+ const INFO : & str = "\n Make sure gdext and Godot are compatible: https://godot-rust.github.io/book/toolchain /compatibility.html" ;
425
422
426
423
// ----------------------------------------------------------------------------------------------------------------------------------------------
427
424
// Private abstractions
You can’t perform that action at this time.
0 commit comments