diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-30 17:48:07 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-01-30 17:48:07 +0100 |
commit | 736696b533f6add4751467c144dd5a06c905d0d6 (patch) | |
tree | 5aeecdf6fe838f6f7ea3f95aad6cf71de8e3526f | |
parent | ba6ecf3e06802e8eb114822e26ac8c84cd5cdbd1 (diff) | |
parent | 82380ec7009223629924f2931ce748396c0001f4 (diff) | |
download | redot-engine-736696b533f6add4751467c144dd5a06c905d0d6.tar.gz |
Merge pull request #87679 from raulsntos/dotnet/remove-unused
C#: Remove unused code
-rw-r--r-- | modules/mono/SCsub | 6 | ||||
-rw-r--r-- | modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ApiAssembliesInfo.cs | 15 | ||||
-rw-r--r-- | modules/mono/editor/GodotTools/GodotTools/Export/AotBuilder.cs | 623 | ||||
-rw-r--r-- | modules/mono/editor/GodotTools/GodotTools/PlaySettings.cs | 19 | ||||
-rw-r--r-- | modules/mono/mono_gd/gd_mono.cpp | 7 |
5 files changed, 0 insertions, 670 deletions
diff --git a/modules/mono/SCsub b/modules/mono/SCsub index 564c5929c7..d267df938a 100644 --- a/modules/mono/SCsub +++ b/modules/mono/SCsub @@ -18,12 +18,6 @@ env_mono.add_source_files(env.modules_sources, "glue/*.cpp") env_mono.add_source_files(env.modules_sources, "mono_gd/*.cpp") env_mono.add_source_files(env.modules_sources, "utils/*.cpp") -env_mono.add_source_files(env.modules_sources, "mono_gd/support/*.cpp") - -if env["platform"] in ["macos", "ios"]: - env_mono.add_source_files(env.modules_sources, "mono_gd/support/*.mm") - env_mono.add_source_files(env.modules_sources, "mono_gd/support/*.m") - if env.editor_build: env_mono.add_source_files(env.modules_sources, "editor/*.cpp") SConscript("editor/script_templates/SCsub") diff --git a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ApiAssembliesInfo.cs b/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ApiAssembliesInfo.cs deleted file mode 100644 index 345a472185..0000000000 --- a/modules/mono/editor/GodotTools/GodotTools.ProjectEditor/ApiAssembliesInfo.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace GodotTools -{ - public static class ApiAssemblyNames - { - public const string SolutionName = "GodotSharp"; - public const string Core = "GodotSharp"; - public const string Editor = "GodotSharpEditor"; - } - - public enum ApiAssemblyType - { - Core, - Editor - } -} diff --git a/modules/mono/editor/GodotTools/GodotTools/Export/AotBuilder.cs b/modules/mono/editor/GodotTools/GodotTools/Export/AotBuilder.cs deleted file mode 100644 index e516b4dd18..0000000000 --- a/modules/mono/editor/GodotTools/GodotTools/Export/AotBuilder.cs +++ /dev/null @@ -1,623 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using GodotTools.Internals; -using Directory = GodotTools.Utils.Directory; -using File = GodotTools.Utils.File; -using OS = GodotTools.Utils.OS; -using Path = System.IO.Path; - -namespace GodotTools.Export -{ - public struct AotOptions - { - public bool EnableLLVM; - public bool LLVMOnly; - public string LLVMPath; - public string LLVMOutputPath; - - public bool FullAot; - - private bool _useInterpreter; - public bool UseInterpreter { readonly get => _useInterpreter && !LLVMOnly; set => _useInterpreter = value; } - - public string[] ExtraAotOptions; - public string[] ExtraOptimizerOptions; - - public string ToolchainPath; - } - - public static class AotBuilder - { - public static void CompileAssemblies(ExportPlugin exporter, AotOptions aotOpts, string[] features, string platform, bool isDebug, string bclDir, string outputDir, string outputDataDir, IDictionary<string, string> assemblies) - { - // TODO: WASM - - string aotTempDir = Path.Combine(Path.GetTempPath(), $"godot-aot-{Process.GetCurrentProcess().Id}"); - - if (!Directory.Exists(aotTempDir)) - Directory.CreateDirectory(aotTempDir); - - var assembliesPrepared = new Dictionary<string, string>(); - - foreach (var dependency in assemblies) - { - string assemblyName = dependency.Key; - string assemblyPath = dependency.Value; - - string assemblyPathInBcl = Path.Combine(bclDir, assemblyName + ".dll"); - - if (File.Exists(assemblyPathInBcl)) - { - // Don't create teporaries for assemblies from the BCL - assembliesPrepared.Add(assemblyName, assemblyPathInBcl); - } - else - { - string tempAssemblyPath = Path.Combine(aotTempDir, assemblyName + ".dll"); - File.Copy(assemblyPath, tempAssemblyPath); - assembliesPrepared.Add(assemblyName, tempAssemblyPath); - } - } - - if (platform == OS.Platforms.iOS) - { - string[] architectures = GetEnablediOSArchs(features).ToArray(); - CompileAssembliesForiOS(exporter, isDebug, architectures, aotOpts, aotTempDir, assembliesPrepared, bclDir); - } - else if (platform == OS.Platforms.Android) - { - string[] abis = GetEnabledAndroidAbis(features).ToArray(); - CompileAssembliesForAndroid(exporter, isDebug, abis, aotOpts, aotTempDir, assembliesPrepared, bclDir); - } - else - { - string arch = ""; - if (features.Contains("x86_64")) - { - arch = "x86_64"; - } - else if (features.Contains("x86_32")) - { - arch = "x86_32"; - } - else if (features.Contains("arm64")) - { - arch = "arm64"; - } - else if (features.Contains("arm32")) - { - arch = "arm32"; - } - CompileAssembliesForDesktop(exporter, platform, isDebug, arch, aotOpts, aotTempDir, outputDataDir, assembliesPrepared, bclDir); - } - } - - public static void CompileAssembliesForAndroid(ExportPlugin exporter, bool isDebug, string[] abis, AotOptions aotOpts, string aotTempDir, IDictionary<string, string> assemblies, string bclDir) - { - - foreach (var assembly in assemblies) - { - string assemblyName = assembly.Key; - string assemblyPath = assembly.Value; - - // Not sure if the 'lib' prefix is an Android thing or just Godot being picky, - // but we use '-aot-' as well just in case to avoid conflicts with other libs. - string outputFileName = "lib-aot-" + assemblyName + ".dll.so"; - - foreach (string abi in abis) - { - string aotAbiTempDir = Path.Combine(aotTempDir, abi); - string soFilePath = Path.Combine(aotAbiTempDir, outputFileName); - - var compilerArgs = GetAotCompilerArgs(OS.Platforms.Android, isDebug, abi, aotOpts, assemblyPath, soFilePath); - - // Make sure the output directory exists - Directory.CreateDirectory(aotAbiTempDir); - - string compilerDirPath = Path.Combine(GodotSharpDirs.DataEditorToolsDir, "aot-compilers", $"{OS.Platforms.Android}-{abi}"); - - ExecuteCompiler(FindCrossCompiler(compilerDirPath), compilerArgs, bclDir); - - // The Godot exporter expects us to pass the abi in the tags parameter - exporter.AddSharedObject(soFilePath, tags: new[] { abi }, ""); - } - } - } - - public static void CompileAssembliesForDesktop(ExportPlugin exporter, string platform, bool isDebug, string arch, AotOptions aotOpts, string aotTempDir, string outputDataDir, IDictionary<string, string> assemblies, string bclDir) - { - foreach (var assembly in assemblies) - { - string assemblyName = assembly.Key; - string assemblyPath = assembly.Value; - - string outputFileExtension = platform == OS.Platforms.Windows ? ".dll" : - platform == OS.Platforms.MacOS ? ".dylib" : - ".so"; - - string outputFileName = assemblyName + ".dll" + outputFileExtension; - string tempOutputFilePath = Path.Combine(aotTempDir, outputFileName); - - var compilerArgs = GetAotCompilerArgs(platform, isDebug, arch, aotOpts, assemblyPath, tempOutputFilePath); - - string compilerDirPath = GetMonoCrossDesktopDirName(platform, arch); - - ExecuteCompiler(FindCrossCompiler(compilerDirPath), compilerArgs, bclDir); - - if (platform == OS.Platforms.MacOS) - { - exporter.AddSharedObject(tempOutputFilePath, tags: null, ""); - } - else - { - string libDir = platform == OS.Platforms.Windows ? "bin" : "lib"; - string outputDataLibDir = Path.Combine(outputDataDir, "Mono", libDir); - File.Copy(tempOutputFilePath, Path.Combine(outputDataLibDir, outputFileName)); - } - } - } - - public static void CompileAssembliesForiOS(ExportPlugin exporter, bool isDebug, string[] architectures, AotOptions aotOpts, string aotTempDir, IDictionary<string, string> assemblies, string bclDir) - { - var cppCode = new StringBuilder(); - var aotModuleInfoSymbols = new List<string>(assemblies.Count); - - // {arch: paths} - var objFilePathsForiOSArch = architectures.ToDictionary(arch => arch, arch => new List<string>(assemblies.Count)); - - foreach (var assembly in assemblies) - { - string assemblyName = assembly.Key; - string assemblyPath = assembly.Value; - - string asmFileName = assemblyName + ".dll.S"; - string objFileName = assemblyName + ".dll.o"; - - foreach (string arch in architectures) - { - string aotArchTempDir = Path.Combine(aotTempDir, arch); - string asmFilePath = Path.Combine(aotArchTempDir, asmFileName); - - var compilerArgs = GetAotCompilerArgs(OS.Platforms.iOS, isDebug, arch, aotOpts, assemblyPath, asmFilePath); - - // Make sure the output directory exists - Directory.CreateDirectory(aotArchTempDir); - - string compilerDirPath = Path.Combine(GodotSharpDirs.DataEditorToolsDir, "aot-compilers", $"{OS.Platforms.iOS}-{arch}"); - - ExecuteCompiler(FindCrossCompiler(compilerDirPath), compilerArgs, bclDir); - - // Assembling - bool isSim = arch == "i386" || arch == "x86_64"; // Shouldn't really happen as we don't do AOT for the simulator - string versionMinName = isSim ? "iphonesimulator" : "iphoneos"; - string iOSPlatformName = isSim ? "iPhoneSimulator" : "iPhoneOS"; - const string versionMin = "12.0"; // TODO: Turn this hard-coded version into an exporter setting - string iOSSdkPath = Path.Combine(XcodeHelper.XcodePath, - $"Contents/Developer/Platforms/{iOSPlatformName}.platform/Developer/SDKs/{iOSPlatformName}.sdk"); - - string objFilePath = Path.Combine(aotArchTempDir, objFileName); - - var clangArgs = new List<string>() - { - "-isysroot", iOSSdkPath, - "-Qunused-arguments", - $"-m{versionMinName}-version-min={versionMin}", - "-arch", arch, - "-c", - "-o", objFilePath, - "-x", "assembler" - }; - - if (isDebug) - clangArgs.Add("-DDEBUG"); - - clangArgs.Add(asmFilePath); - - int clangExitCode = OS.ExecuteCommand(XcodeHelper.FindXcodeTool("clang"), clangArgs); - if (clangExitCode != 0) - throw new InvalidOperationException($"Command 'clang' exited with code: {clangExitCode}."); - - objFilePathsForiOSArch[arch].Add(objFilePath); - } - - aotModuleInfoSymbols.Add($"mono_aot_module_{AssemblyNameToAotSymbol(assemblyName)}_info"); - } - - // Generate driver code - cppCode.AppendLine("#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)"); - cppCode.AppendLine("#define IOS_DEVICE"); - cppCode.AppendLine("#endif"); - - cppCode.AppendLine("#ifdef IOS_DEVICE"); - cppCode.AppendLine("extern \"C\" {"); - cppCode.AppendLine("// Mono API"); - cppCode.AppendLine(@" -typedef enum { -MONO_AOT_MODE_NONE, -MONO_AOT_MODE_NORMAL, -MONO_AOT_MODE_HYBRID, -MONO_AOT_MODE_FULL, -MONO_AOT_MODE_LLVMONLY, -MONO_AOT_MODE_INTERP, -MONO_AOT_MODE_INTERP_LLVMONLY, -MONO_AOT_MODE_LLVMONLY_INTERP, -MONO_AOT_MODE_LAST = 1000, -} MonoAotMode;"); - cppCode.AppendLine("void mono_jit_set_aot_mode(MonoAotMode);"); - cppCode.AppendLine("void mono_aot_register_module(void *);"); - - if (aotOpts.UseInterpreter) - { - cppCode.AppendLine("void mono_ee_interp_init(const char *);"); - cppCode.AppendLine("void mono_icall_table_init();"); - cppCode.AppendLine("void mono_marshal_ilgen_init();"); - cppCode.AppendLine("void mono_method_builder_ilgen_init();"); - cppCode.AppendLine("void mono_sgen_mono_ilgen_init();"); - } - - foreach (string symbol in aotModuleInfoSymbols) - cppCode.AppendLine($"extern void *{symbol};"); - - cppCode.AppendLine("void gd_mono_setup_aot() {"); - - foreach (string symbol in aotModuleInfoSymbols) - cppCode.AppendLine($"\tmono_aot_register_module({symbol});"); - - if (aotOpts.UseInterpreter) - { - cppCode.AppendLine("\tmono_icall_table_init();"); - cppCode.AppendLine("\tmono_marshal_ilgen_init();"); - cppCode.AppendLine("\tmono_method_builder_ilgen_init();"); - cppCode.AppendLine("\tmono_sgen_mono_ilgen_init();"); - cppCode.AppendLine("\tmono_ee_interp_init(0);"); - } - - string aotModeStr = null; - - if (aotOpts.LLVMOnly) - { - aotModeStr = "MONO_AOT_MODE_LLVMONLY"; // --aot=llvmonly - } - else - { - if (aotOpts.UseInterpreter) - aotModeStr = "MONO_AOT_MODE_INTERP"; // --aot=interp or --aot=interp,full - else if (aotOpts.FullAot) - aotModeStr = "MONO_AOT_MODE_FULL"; // --aot=full - } - - // One of the options above is always set for iOS - Debug.Assert(aotModeStr != null); - - cppCode.AppendLine($"\tmono_jit_set_aot_mode({aotModeStr});"); - - cppCode.AppendLine("} // gd_mono_setup_aot"); - cppCode.AppendLine("} // extern \"C\""); - cppCode.AppendLine("#endif // IOS_DEVICE"); - - // Add the driver code to the Xcode project - exporter.AddIosCppCode(cppCode.ToString()); - - // Archive the AOT object files into a static library - - var arFilePathsForAllArchs = new List<string>(); - string projectAssemblyName = GodotSharpDirs.ProjectAssemblyName; - - foreach (var archPathsPair in objFilePathsForiOSArch) - { - string arch = archPathsPair.Key; - var objFilePaths = archPathsPair.Value; - - string arOutputFilePath = Path.Combine(aotTempDir, $"lib-aot-{projectAssemblyName}.{arch}.a"); - - var arArgs = new List<string>() - { - "cr", - arOutputFilePath - }; - - foreach (string objFilePath in objFilePaths) - arArgs.Add(objFilePath); - - int arExitCode = OS.ExecuteCommand(XcodeHelper.FindXcodeTool("ar"), arArgs); - if (arExitCode != 0) - throw new InvalidOperationException($"Command 'ar' exited with code: {arExitCode}."); - - arFilePathsForAllArchs.Add(arOutputFilePath); - } - - // It's lipo time - - string fatOutputFileName = $"lib-aot-{projectAssemblyName}.fat.a"; - string fatOutputFilePath = Path.Combine(aotTempDir, fatOutputFileName); - - var lipoArgs = new List<string>(); - lipoArgs.Add("-create"); - lipoArgs.AddRange(arFilePathsForAllArchs); - lipoArgs.Add("-output"); - lipoArgs.Add(fatOutputFilePath); - - int lipoExitCode = OS.ExecuteCommand(XcodeHelper.FindXcodeTool("lipo"), lipoArgs); - if (lipoExitCode != 0) - throw new InvalidOperationException($"Command 'lipo' exited with code: {lipoExitCode}."); - - // TODO: Add the AOT lib and interpreter libs as device only to suppress warnings when targeting the simulator - - // Add the fat AOT static library to the Xcode project - exporter.AddIosProjectStaticLib(fatOutputFilePath); - - // Add the required Mono libraries to the Xcode project - - string MonoLibFile(string libFileName) => libFileName + ".ios.fat.a"; - - string MonoLibFromTemplate(string libFileName) => - Path.Combine(Internal.FullExportTemplatesDir, "ios-mono-libs", MonoLibFile(libFileName)); - - exporter.AddIosProjectStaticLib(MonoLibFromTemplate("libmonosgen-2.0")); - - exporter.AddIosProjectStaticLib(MonoLibFromTemplate("libmono-native")); - - if (aotOpts.UseInterpreter) - { - exporter.AddIosProjectStaticLib(MonoLibFromTemplate("libmono-ee-interp")); - exporter.AddIosProjectStaticLib(MonoLibFromTemplate("libmono-icall-table")); - exporter.AddIosProjectStaticLib(MonoLibFromTemplate("libmono-ilgen")); - } - - // TODO: Turn into an exporter option - bool enableProfiling = false; - if (enableProfiling) - exporter.AddIosProjectStaticLib(MonoLibFromTemplate("libmono-profiler-log")); - - // Add frameworks required by Mono to the Xcode project - exporter.AddIosFramework("libiconv.tbd"); - exporter.AddIosFramework("GSS.framework"); - exporter.AddIosFramework("CFNetwork.framework"); - - // Force load and export dynamic are needed for the linker to not strip required symbols. - // In theory we shouldn't be relying on this for P/Invoked functions (as is the case with - // functions in System.Native/libmono-native). Instead, we should use cecil to search for - // DllImports in assemblies and pass them to 'ld' as '-u/--undefined {pinvoke_symbol}'. - exporter.AddIosLinkerFlags("-rdynamic"); - exporter.AddIosLinkerFlags($"-force_load \"$(SRCROOT)/{MonoLibFile("libmono-native")}\""); - } - - /// Converts an assembly name to a valid symbol name in the same way the AOT compiler does - private static string AssemblyNameToAotSymbol(string assemblyName) - { - var builder = new StringBuilder(); - - foreach (var charByte in Encoding.UTF8.GetBytes(assemblyName)) - { - char @char = (char)charByte; - builder.Append(Char.IsLetterOrDigit(@char) || @char == '_' ? @char : '_'); - } - - return builder.ToString(); - } - - private static IEnumerable<string> GetAotCompilerArgs(string platform, bool isDebug, string target, AotOptions aotOpts, string assemblyPath, string outputFilePath) - { - // TODO: LLVM - - bool aotSoftDebug = isDebug && !aotOpts.EnableLLVM; - bool aotDwarfDebug = platform == OS.Platforms.iOS; - - var aotOptions = new List<string>(); - var optimizerOptions = new List<string>(); - - if (aotOpts.LLVMOnly) - { - aotOptions.Add("llvmonly"); - } - else - { - // Can be both 'interp' and 'full' - if (aotOpts.UseInterpreter) - aotOptions.Add("interp"); - if (aotOpts.FullAot) - aotOptions.Add("full"); - } - - aotOptions.Add(aotSoftDebug ? "soft-debug" : "nodebug"); - - if (aotDwarfDebug) - aotOptions.Add("dwarfdebug"); - - if (platform == OS.Platforms.Android) - { - string abi = target; - - string androidToolchain = aotOpts.ToolchainPath; - - if (string.IsNullOrEmpty(androidToolchain)) - { - androidToolchain = Path.Combine(GodotSharpDirs.DataEditorToolsDir, "android-toolchains", $"{abi}"); // TODO: $"{abi}-{apiLevel}{(clang?"clang":"")}" - - if (!Directory.Exists(androidToolchain)) - throw new FileNotFoundException("Missing android toolchain. Specify one in the AOT export settings."); - } - else if (!Directory.Exists(androidToolchain)) - { - throw new FileNotFoundException($"Android toolchain not found: '{androidToolchain}'."); - } - - var androidToolPrefixes = new Dictionary<string, string> - { - ["arm32"] = "arm-linux-androideabi-", - ["arm64"] = "aarch64-linux-android-", - ["x86_32"] = "i686-linux-android-", - ["x86_64"] = "x86_64-linux-android-" - }; - - aotOptions.Add("tool-prefix=" + Path.Combine(androidToolchain, "bin", androidToolPrefixes[abi])); - - string triple = GetAndroidTriple(abi); - aotOptions.Add($"mtriple={triple}"); - } - else if (platform == OS.Platforms.iOS) - { - if (!aotOpts.LLVMOnly && !aotOpts.UseInterpreter) - optimizerOptions.Add("gsharedvt"); - - aotOptions.Add("static"); - - // I couldn't get the Mono cross-compiler to do assembling, so we'll have to do it ourselves - aotOptions.Add("asmonly"); - - aotOptions.Add("direct-icalls"); - - if (aotSoftDebug) - aotOptions.Add("no-direct-calls"); - - if (aotOpts.LLVMOnly || !aotOpts.UseInterpreter) - aotOptions.Add("direct-pinvoke"); - - string arch = target; - aotOptions.Add($"mtriple={arch}-ios"); - } - - aotOptions.Add($"outfile={outputFilePath}"); - - if (aotOpts.EnableLLVM) - { - aotOptions.Add($"llvm-path={aotOpts.LLVMPath}"); - aotOptions.Add($"llvm-outfile={aotOpts.LLVMOutputPath}"); - } - - if (aotOpts.ExtraAotOptions.Length > 0) - aotOptions.AddRange(aotOpts.ExtraAotOptions); - - if (aotOpts.ExtraOptimizerOptions.Length > 0) - optimizerOptions.AddRange(aotOpts.ExtraOptimizerOptions); - - string EscapeOption(string option) => option.Contains(',') ? $"\"{option}\"" : option; - string OptionsToString(IEnumerable<string> options) => string.Join(",", options.Select(EscapeOption)); - - var runtimeArgs = new List<string>(); - - // The '--debug' runtime option is required when using the 'soft-debug' and 'dwarfdebug' AOT options - if (aotSoftDebug || aotDwarfDebug) - runtimeArgs.Add("--debug"); - - if (aotOpts.EnableLLVM) - runtimeArgs.Add("--llvm"); - - runtimeArgs.Add(aotOptions.Count > 0 ? $"--aot={OptionsToString(aotOptions)}" : "--aot"); - - if (optimizerOptions.Count > 0) - runtimeArgs.Add($"-O={OptionsToString(optimizerOptions)}"); - - runtimeArgs.Add(assemblyPath); - - return runtimeArgs; - } - - private static void ExecuteCompiler(string compiler, IEnumerable<string> compilerArgs, string bclDir) - { - // TODO: Once we move to .NET Standard 2.1 we can use ProcessStartInfo.ArgumentList instead - string CmdLineArgsToString(IEnumerable<string> args) - { - // Not perfect, but as long as we are careful... - return string.Join(" ", args.Select(arg => arg.Contains(" ") ? $@"""{arg}""" : arg)); - } - - using (var process = new Process()) - { - process.StartInfo = new ProcessStartInfo(compiler, CmdLineArgsToString(compilerArgs)) - { - UseShellExecute = false - }; - - process.StartInfo.EnvironmentVariables.Remove("MONO_ENV_OPTIONS"); - process.StartInfo.EnvironmentVariables.Remove("MONO_THREADS_SUSPEND"); - process.StartInfo.EnvironmentVariables.Add("MONO_PATH", bclDir); - - Console.WriteLine($"Running: \"{process.StartInfo.FileName}\" {process.StartInfo.Arguments}"); - - if (!process.Start()) - throw new InvalidOperationException("Failed to start process for Mono AOT compiler."); - - process.WaitForExit(); - - if (process.ExitCode != 0) - throw new InvalidOperationException($"Mono AOT compiler exited with code: {process.ExitCode}."); - } - } - - private static IEnumerable<string> GetEnablediOSArchs(string[] features) - { - var iosArchs = new[] - { - "arm64" - }; - - return iosArchs.Where(features.Contains); - } - - private static IEnumerable<string> GetEnabledAndroidAbis(string[] features) - { - var androidAbis = new[] - { - "arm32", - "arm64", - "x86_32", - "x86_64" - }; - - return androidAbis.Where(features.Contains); - } - - private static string GetAndroidTriple(string abi) - { - var abiArchs = new Dictionary<string, string> - { - ["arm32"] = "armv7", - ["arm64"] = "aarch64-v8a", - ["x86_32"] = "i686", - ["x86_64"] = "x86_64" - }; - - string arch = abiArchs[abi]; - - return $"{arch}-linux-android"; - } - - private static string GetMonoCrossDesktopDirName(string platform, string arch) - { - switch (platform) - { - case OS.Platforms.Windows: - { - return $"windows-{arch}"; - } - case OS.Platforms.MacOS: - { - return $"{platform}-{arch}"; - } - case OS.Platforms.LinuxBSD: - { - return $"linux-{arch}"; - } - default: - throw new NotSupportedException($"Platform not supported: {platform}"); - } - } - - // TODO: Replace this for a specific path for each platform - private static string FindCrossCompiler(string monoCrossBin) - { - string exeExt = OS.IsWindows ? ".exe" : string.Empty; - - var files = new DirectoryInfo(monoCrossBin).GetFiles($"*mono-sgen{exeExt}", SearchOption.TopDirectoryOnly); - if (files.Length > 0) - return Path.Combine(monoCrossBin, files[0].Name); - - throw new FileNotFoundException($"Cannot find the mono runtime executable in {monoCrossBin}"); - } - } -} diff --git a/modules/mono/editor/GodotTools/GodotTools/PlaySettings.cs b/modules/mono/editor/GodotTools/GodotTools/PlaySettings.cs deleted file mode 100644 index 9a8fdcc7c5..0000000000 --- a/modules/mono/editor/GodotTools/GodotTools/PlaySettings.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace GodotTools -{ - public readonly struct PlaySettings - { - public bool HasDebugger { get; } - public string DebuggerHost { get; } - public int DebuggerPort { get; } - - public bool BuildBeforePlaying { get; } - - public PlaySettings(string debuggerHost, int debuggerPort, bool buildBeforePlaying) - { - HasDebugger = true; - DebuggerHost = debuggerHost; - DebuggerPort = debuggerPort; - BuildBeforePlaying = buildBeforePlaying; - } - } -} diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp index 7ce2232aa4..0e34616951 100644 --- a/modules/mono/mono_gd/gd_mono.cpp +++ b/modules/mono/mono_gd/gd_mono.cpp @@ -53,13 +53,6 @@ #include <dlfcn.h> #endif -// TODO mobile -#if 0 -#ifdef IOS_ENABLED -#include "support/ios_support.h" -#endif -#endif - GDMono *GDMono::singleton = nullptr; namespace { |