Update GenerateMainStep to generate code compatible with libxamarin on macOS (#9799)

This commit is contained in:
Filip Navara 2020-10-08 08:09:40 +02:00 коммит произвёл GitHub
Родитель 3c11942a8a
Коммит 1e960b8780
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
1 изменённых файлов: 20 добавлений и 11 удалений

Просмотреть файл

@ -45,17 +45,26 @@ namespace Xamarin {
contents.WriteLine ("\txamarin_supports_dynamic_registration = {0};", app.DynamicRegistrationSupported ? "TRUE" : "FALSE");
contents.WriteLine ("}");
contents.WriteLine ();
contents.WriteLine ("void xamarin_initialize_callbacks () __attribute__ ((constructor));");
contents.WriteLine ("void xamarin_initialize_callbacks ()");
contents.WriteLine ("{");
contents.WriteLine ("\txamarin_setup = xamarin_setup_impl;");
contents.WriteLine ("}");
contents.WriteLine ();
contents.WriteLine ("int");
contents.WriteLine ("main (int argc, char** argv)");
contents.WriteLine ("{");
contents.WriteLine ("\t@autoreleasepool { return xamarin_main (argc, argv, XamarinLaunchModeApp); }");
contents.WriteLine ("}");
if (Configuration.Platform == Utils.ApplePlatform.MacOSX) {
contents.WriteLine ("extern \"C\" int xammac_setup ()");
contents.WriteLine ("{");
contents.WriteLine ("\txamarin_setup_impl ();");
contents.WriteLine ("\treturn 0;");
contents.WriteLine ("}");
} else {
contents.WriteLine ("void xamarin_initialize_callbacks () __attribute__ ((constructor));");
contents.WriteLine ("void xamarin_initialize_callbacks ()");
contents.WriteLine ("{");
contents.WriteLine ("\txamarin_setup = xamarin_setup_impl;");
contents.WriteLine ("}");
contents.WriteLine ();
contents.WriteLine ("int");
contents.WriteLine ("main (int argc, char** argv)");
contents.WriteLine ("{");
contents.WriteLine ("\t@autoreleasepool { return xamarin_main (argc, argv, XamarinLaunchModeApp); }");
contents.WriteLine ("}");
}
File.WriteAllText (file, contents.ToString ());