Skip to content

Commit 2d199ba

Browse files
committed
[tvOS] GDExtensionPlugin support
1 parent c188683 commit 2d199ba

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

editor/plugins/gdextension_export_plugin.h

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,25 +81,32 @@ void GDExtensionExportPlugin::_export_file(const String &p_path, const String &p
8181
}
8282
add_shared_object(library_path, tags);
8383

84-
if (p_features.has("iOS") && (library_path.ends_with(".a") || library_path.ends_with(".xcframework"))) {
84+
if ((p_features.has("iOS") || p_features.has("tvOS")) && (library_path.ends_with(".a") || library_path.ends_with(".xcframework"))) {
8585
String additional_code = "extern void register_dynamic_symbol(char *name, void *address);\n"
86-
"extern void add_ios_init_callback(void (*cb)());\n"
86+
"extern void add_$PLATFORM_init_callback(void (*cb)());\n"
8787
"\n"
8888
"extern \"C\" void $ENTRY();\n"
8989
"void $ENTRY_init() {\n"
9090
" if (&$ENTRY) register_dynamic_symbol((char *)\"$ENTRY\", (void *)$ENTRY);\n"
9191
"}\n"
9292
"struct $ENTRY_struct {\n"
9393
" $ENTRY_struct() {\n"
94-
" add_ios_init_callback($ENTRY_init);\n"
94+
" add_$PLATFORM_init_callback($ENTRY_init);\n"
9595
" }\n"
9696
"};\n"
9797
"$ENTRY_struct $ENTRY_struct_instance;\n\n";
9898
additional_code = additional_code.replace("$ENTRY", entry_symbol);
99-
add_ios_cpp_code(additional_code);
100-
10199
String linker_flags = "-Wl,-U,_" + entry_symbol;
102-
add_ios_linker_flags(linker_flags);
100+
101+
if (p_features.has("iOS")) {
102+
additional_code = additional_code.replace("$PLATFORM", "ios");
103+
add_ios_cpp_code(additional_code);
104+
add_ios_linker_flags(linker_flags);
105+
} else if (p_features.has("tvOS")) {
106+
additional_code = additional_code.replace("$PLATFORM", "tvos");
107+
add_tvos_cpp_code(additional_code);
108+
add_tvos_linker_flags(linker_flags);
109+
}
103110
}
104111
break;
105112
}

platform/tvos/export/export.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1069,7 +1069,7 @@ Error EditorExportPlatformTVOS::export_project(const Ref<EditorExportPreset> &p_
10691069
}
10701070
String pack_path = dest_dir + binary_name + ".pck";
10711071
Vector<SharedObject> libraries;
1072-
Error err = save_pack(p_preset, pack_path, &libraries);
1072+
Error err = save_pack(p_preset, p_debug, pack_path, &libraries);
10731073
if (err)
10741074
return err;
10751075

0 commit comments

Comments
 (0)