@@ -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 }
0 commit comments