static void Main() { List <BuildCommand> commands = HostPlatform.IsOSX ? MacCommands() : WindowsCommands(); commands.AddRange(GetAndroidBuildCommands()); NativeProgram plugin = new NativeProgram("traceeventprofiler") { Sources = { "src" } }; plugin.CompilerSettingsForIosOrTvos().Add(s => s.WithEmbedBitcode(true)); plugin.DynamicLinkerSettingsForWindows().Add(s => s.WithDefinitionFile("src/ProfilerPlugin.def")); plugin.OutputName.Set(c => DllNameForPlatform(c.ToolChain.Platform)); foreach (var command in commands) { var toolchain = command.ToolChain; var config = new NativeProgramConfiguration(CodeGen.Release, toolchain, false); var tempDir = $"artifacts_preprocess/{toolchain.LegacyPlatformIdentifier}"; var builtProgram = plugin.SetupSpecificConfiguration(config, toolchain.DynamicLibraryFormat).DeployTo(tempDir).Path; if (command.PostProcess != null) { builtProgram = command.PostProcess(builtProgram, toolchain, command.PluginSubFolder); } Backend.Current.AddAliasDependency(command.Alias, builtProgram); } }
public static NPath[] GetUtilsSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { var files = new List <NPath>(); files.AddRange(PosixMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); files.AddRange(new[] { MonoSourceDir.Combine("mono/utils/mach-support.c"), MonoSourceDir.Combine("mono/utils/mono-dl-darwin.c"), MonoSourceDir.Combine("mono/utils/mono-log-darwin.c"), MonoSourceDir.Combine("mono/utils/mono-threads-mach.c"), MonoSourceDir.Combine("mono/utils/mono-threads-mach-helper.c") }); if (npc.ToolChain.Architecture is x64Architecture) { files.Add(MonoSourceDir.Combine("mono/utils/mach-support-amd64.c")); } if (npc.ToolChain.Architecture is x86Architecture) { files.Add(MonoSourceDir.Combine("mono/utils/mach-support-x86.c")); } return(files.ToArray()); }
private static void SetupCppHelloWorld() { //setup a platform agnostic native program description var np = new NativeProgram("helloworld"); //add all native sourcefiles in a directory called helloworld_cpp np.Sources.Add("hello.c"); //maybe add a define? np.Defines.Add("VERY_IMPORTANT=1"); //now that we have a nativeprogram, we need to build in into a specific "shape". We need to specify an exact toolchain, architecture, //"format", codegen and target directory. Let's start: //let's pick whatever is a good toolchain for the computer we're running on var toolchain = ToolChain.Store.Host(); //Lets create a configuration for this nativeprogram that builds with Debug Codegen, the toolchain we just created, and uses lumping. var nativeProgramConfiguration = new NativeProgramConfiguration(CodeGen.Debug, toolchain, lump: true); //we want to build the nativeprogram into an executable. each toolchain can provide different ways of "linking" (static, dynamic, executable are default ones) var format = toolchain.ExecutableFormat; //and here the magic happens, the nativeprogram gets setup for the specific configuration we just made. np.SetupSpecificConfiguration(nativeProgramConfiguration, format).DeployTo("build"); }
public static NPath[] GetUtilsSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { var files = new List <NPath>(); files.AddRange(UnityMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); files.Add(MonoSourceDir.Combine("mono/utils/mono-log-darwin.c")); return(files.ToArray()); }
public static NPath[] GetMetadataSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { var files = new List <NPath>(); files.AddRange(PosixMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); files.Add(MonoSourceDir.Combine("mono/metadata/w32process-unix-osx.c")); return(files.ToArray()); }
public static NPath[] GetUtilsSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { var files = new List <NPath>(); files.AddRange(WindowsSharedMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); files.Add(MonoSourceDir.Combine("mono/utils/mono-dl-windows-uwp.c")); return(files.ToArray()); }
public static NPath[] GetUtilsSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(new[] { MonoSourceDir.Combine("mono/utils/mono-dl-unity.c"), MonoSourceDir.Combine("mono/utils/mono-log-unity.c"), MonoSourceDir.Combine("mono/utils/mono-threads-unity.c"), MonoSourceDir.Combine("mono/utils/networking-unity.c"), MonoSourceDir.Combine("mono/utils/os-event-unity.c") }); }
public static string BaselibArchitectureName(NativeProgramConfiguration npc) { switch (npc.Platform) { case MacOSXPlatform _: if (npc.ToolChain.Architecture.IsX64) { return("mac64"); } break; case WindowsPlatform _: if (npc.ToolChain.Architecture.IsX86) { return("win32"); } if (npc.ToolChain.Architecture.IsX64) { return("win64"); } break; default: if (npc.ToolChain.Architecture.IsX86) { return("x86"); } if (npc.ToolChain.Architecture.IsX64) { return("x64"); } if (npc.ToolChain.Architecture.IsArmv7) { return("arm32"); } if (npc.ToolChain.Architecture.IsArm64) { return("arm64"); } if (npc.ToolChain.Architecture is WasmArchitecture) { return("wasm"); } if (npc.ToolChain.Architecture is AsmJsArchitecture) { return("asmjs"); } //if (npc.ToolChain.Architecture is WasmArchitecture && HAS_THREADING) return "wasm_withthreads"; break; } throw new InvalidProgramException($"Unknown toolchain and architecture for baselib: {npc.ToolChain.LegacyPlatformIdentifier} {npc.ToolChain.Architecture.Name}"); }
public static NPath[] GetMetadataSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(new[] { MonoSourceDir.Combine("mono/metadata/console-win32.c"), MonoSourceDir.Combine("mono/metadata/w32error-win32.c"), MonoSourceDir.Combine("mono/metadata/w32event-win32.c"), MonoSourceDir.Combine("mono/metadata/w32file-win32.c"), MonoSourceDir.Combine("mono/metadata/w32mutex-win32.c"), MonoSourceDir.Combine("mono/metadata/w32process-win32.c"), MonoSourceDir.Combine("mono/metadata/w32semaphore-win32.c"), MonoSourceDir.Combine("mono/metadata/w32socket-win32.c") }); }
private NPath[] MonoSourcesFor(NativeProgramConfiguration npc, NPath MonoSourceDir, bool managedDebuggingEnabled) { var monoSources = new List <NPath>(); if (managedDebuggingEnabled) { monoSources.Add(MonoSourceFileList.GetMiniSourceFiles(npc, MonoSourceDir)); } monoSources.Add(MonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir, managedDebuggingEnabled)); monoSources.Add(MonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir, managedDebuggingEnabled)); monoSources.Add(MonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir, managedDebuggingEnabled)); return(monoSources.ToArray()); }
private static void ProcessProgram(NativeProgram plugin, string targetDir, List <BuildCommand> commands) { foreach (var command in commands) { var toolchain = command.ToolChain; var config = new NativeProgramConfiguration(CodeGen.Release, toolchain, false); var builtProgram = plugin.SetupSpecificConfiguration(config, toolchain.DynamicLibraryFormat); var artefact = builtProgram.Path; if (command.PostProcess != null) { artefact = command.PostProcess(artefact, toolchain, targetDir, command.PluginSubFolder); } Backend.Current.AddAliasDependency(command.Alias, artefact); } }
private static void BuildStarterKitPlugin() { var np = new NativeProgram("MARSXRSubsystem"); np.Sources.Add("Source"); np.IncludeDirectories.Add("External/Unity"); var toolchains = new ToolChain[] { new WindowsToolchain(new Lazy <WindowsSdk>(() => WindowsSdk.Locatorx64.UserDefaultOrLatest).Value), new MacToolchain(new Lazy <MacSdk>(() => MacSdk.Locatorx64.UserDefaultOrLatest).Value), //new AndroidNdkToolchain(new Lazy<AndroidNdk>(() => (AndroidNdk) ToolChain.Store.Android().r16b().Arm64().Sdk).Value), //new AndroidNdkToolchain(new Lazy<AndroidNdk>(() => (AndroidNdk) ToolChain.Store.Android().r16b().Armv7().Sdk).Value), //new IOSToolchain(new Lazy<IOSSdk>(() => IOSSdk.LocatorArm64.UserDefaultOrLatest).Value), }; np.OutputName.Add(s => s.Platform is AndroidPlatform, $"lib{np.Name}"); foreach (var toolchain in toolchains) { var name = toolchain.Platform.Name.ToLower(); if (!toolchain.CanBuild) { Console.WriteLine($"Can't build {toolchain.ToString()}"); continue; } var nativeProgramConfiguration = new NativeProgramConfiguration(CodeGen.Debug, toolchain, lump: false); //we want to build the nativeprogram into an executable. each toolchain can provide different ways of "linking" (static, dynamic, executable are default ones) var format = toolchain is IOSToolchain ? toolchain.StaticLibraryFormat : toolchain.DynamicLibraryFormat; //and here the magic happens, the nativeprogram gets setup for the specific configuration we just made. var folder = name; var deployFolder = new NPath("build").Combine(folder).Combine(toolchain.Architecture.DisplayName); var output = np.SetupSpecificConfiguration(nativeProgramConfiguration, format).DeployTo(deployFolder); var metaFolder = new NPath("Meta/").Combine(folder).Combine(toolchain.Architecture.DisplayName); var metaFile = metaFolder.Combine("plugin." + output.Path.Extension + ".meta"); var deployedMetaFile = deployFolder.Combine(output.Path.FileName + ".meta"); CopyMetaFileWithNewGUID(metaFile, deployedMetaFile); var alias = name; Backend.Current.AddAliasDependency(alias, output.Path); Backend.Current.AddAliasDependency(alias, deployedMetaFile); } }
private static NPath GetLibPath(NativeProgramConfiguration c) { var staticPlatforms = new[] { "IOS", "WebGL", }; if (UseLocalDev) { return(LocalDevRoot.Combine("artifacts", "nativejobs", GetNativeJobsConfigName(c) + "_" + GetTargetName(c) + "_nonlump" + (staticPlatforms.Contains(c.Platform.Name) ? "" : "_dll"))); } var prebuiltLibPath = GetOrCreateSteveArtifactPath($"nativejobs-{c.Platform.Name}" + (staticPlatforms.Contains(c.Platform.Name) ? "-s" : "-d")); return(prebuiltLibPath.Combine("lib", GetTargetName(c), GetNativeJobsConfigName(c))); }
private static string GetNativeJobsConfigName(NativeProgramConfiguration npc) { var dotsrtCSharpConfig = ((DotsRuntimeNativeProgramConfiguration)npc).CSharpConfig; // If collection checks have been forced on in a release build, swap in the develop version of the native jobs prebuilt lib // as the release configuration will not contain the collection checks code paths. if (dotsrtCSharpConfig.EnableUnityCollectionsChecks && dotsrtCSharpConfig.DotsConfiguration == DotsConfiguration.Release) { return(DotsConfiguration.Develop.ToString().ToLower()); } // If building a debug build, make it a develop build so help with performance issues esp. regarding the Job Debugger. // Comment this out for an actual debug build if necessary. if (dotsrtCSharpConfig.DotsConfiguration == DotsConfiguration.Debug) { return(DotsConfiguration.Develop.ToString().ToLower()); } return(dotsrtCSharpConfig.DotsConfiguration.ToString().ToLower()); }
private static string GetTargetName(NativeProgramConfiguration c) { // Look for this type from reference platforms package - if it doesn't exist we aren't building for web var tinyEmType = Type.GetType("TinyEmscripten"); bool useWasmBackend = (bool)(tinyEmType?.GetProperty("UseWasmBackend")?.GetValue(tinyEmType) ?? false); bool useWebGlThreading = false; // Matches logic nativejobs/BuildUtils.bee.cs string targetName = c.ToolChain.Platform.DisplayName + "_" + c.ToolChain.Architecture.DisplayName; if (c.Platform.Name == "WebGL" && !useWasmBackend) { targetName += "_fc"; } if (useWebGlThreading) { targetName += "_withthreads"; } return(targetName.ToLower()); }
public static NPath[] GetUtilsSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(UnityMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); }
public static NPath[] GetEGLibSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(WindowsDesktopMonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir)); }
public static bool ManagedDebuggingIsEnabled(NativeProgramConfiguration c) { return(((DotsRuntimeNativeProgramConfiguration)c).CSharpConfig.EnableManagedDebugging); }
public static NPath[] GetEGLibSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(new[] { MonoSourceDir.Combine("mono/eglib/gunicode-win32.c") }); }
public static NPath[] GetMetadataSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(WindowsSharedMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); }
static void AddActions(DotNetAssembly[] inputAssemblies, NPath targetDirectory, NativeProgramConfiguration nativeProgramConfiguration) { var linkerAssembly = new DotNetAssembly(Distribution.Path.Combine("build/UnityLinker.exe"), Framework.Framework471); var linker = new DotNetRunnableProgram(linkerAssembly); var outputDir = targetDirectory; var isFrameworkNone = inputAssemblies.First().Framework == Framework.FrameworkNone; var rootAssemblies = inputAssemblies.Where(a => a.Path.HasExtension("exe")).Concat(new[] { inputAssemblies.First() }).Distinct(); var linkerArguments = new List <string> { $"--out={outputDir.InQuotes()}", "--use-dots-options", "--dotnetprofile=" + (isFrameworkNone ? "unitytiny" : "unityaot"), "--rule-set=experimental", // This will enable modification of method bodies to further reduce size. inputAssemblies.Select(a => $"--include-directory={a.Path.Parent.InQuotes()}") }; linkerArguments.AddRange(rootAssemblies.Select(rootAssembly => $"--include-public-assembly={rootAssembly.Path.InQuotes()}")); // foreach (var inputDirectory in inputFiles.Select(f => f.Path.Parent).Distinct()) // linkerArguments.Add($"--include-directory={inputDirectory.InQuotes()}"); NPath bclDir = Il2CppDependencies.Path.Combine("MonoBleedingEdge/builds/monodistribution/lib/mono/unityaot"); if (!isFrameworkNone) { linkerArguments.Add($"--search-directory={bclDir.InQuotes()}"); } var targetPlatform = GetTargetPlatformForLinker(nativeProgramConfiguration.Platform); if (!string.IsNullOrEmpty(targetPlatform)) { linkerArguments.Add($"--platform={targetPlatform}"); } var targetArchitecture = GetTargetArchitectureForLinker(nativeProgramConfiguration.ToolChain.Architecture); if (!string.IsNullOrEmpty(targetPlatform)) { linkerArguments.Add($"--architecture={targetArchitecture}"); } // var targetFiles = Unity.BuildTools.EnumerableExtensions.Prepend(nonMainOutputs, mainTargetFile); // targetFiles = targetFiles.Append(bcl); var targetFiles = inputAssemblies.SelectMany(a => a.Paths).Select(i => targetDirectory.Combine(i.FileName)).ToArray(); Backend.Current.AddAction( "UnityLinker", targetFiles: targetFiles, inputs: inputAssemblies.SelectMany(a => a.Paths).Concat(linkerAssembly.Paths).ToArray(), executableStringFor: linker.InvocationString, commandLineArguments: linkerArguments.ToArray(), allowUnwrittenOutputFiles: false, allowUnexpectedOutput: false, allowedOutputSubstrings: new[] { "Output action" }); }
public static NPath[] GetUtilsSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir, bool managedDebuggingEnabled) { var files = new List <NPath> { MonoSourceDir.Combine("mono/utils/atomic.c"), MonoSourceDir.Combine("mono/utils/bsearch.c"), MonoSourceDir.Combine("mono/utils/dlmalloc.c"), MonoSourceDir.Combine("mono/utils/hazard-pointer.c"), MonoSourceDir.Combine("mono/utils/json.c"), MonoSourceDir.Combine("mono/utils/lock-free-alloc.c"), MonoSourceDir.Combine("mono/utils/lock-free-array-queue.c"), MonoSourceDir.Combine("mono/utils/lock-free-queue.c"), MonoSourceDir.Combine("mono/utils/memfuncs.c"), MonoSourceDir.Combine("mono/utils/mono-codeman.c"), MonoSourceDir.Combine("mono/utils/mono-conc-hashtable.c"), MonoSourceDir.Combine("mono/utils/mono-context.c"), MonoSourceDir.Combine("mono/utils/mono-counters.c"), MonoSourceDir.Combine("mono/utils/mono-dl.c"), MonoSourceDir.Combine("mono/utils/mono-error.c"), MonoSourceDir.Combine("mono/utils/mono-filemap.c"), MonoSourceDir.Combine("mono/utils/mono-hwcap.c"), MonoSourceDir.Combine("mono/utils/mono-internal-hash.c"), MonoSourceDir.Combine("mono/utils/mono-io-portability.c"), MonoSourceDir.Combine("mono/utils/mono-linked-list-set.c"), MonoSourceDir.Combine("mono/utils/mono-log-common.c"), MonoSourceDir.Combine("mono/utils/mono-logger.c"), MonoSourceDir.Combine("mono/utils/mono-math.c"), MonoSourceDir.Combine("mono/utils/mono-md5.c"), MonoSourceDir.Combine("mono/utils/mono-mmap-windows.c"), MonoSourceDir.Combine("mono/utils/mono-mmap.c"), MonoSourceDir.Combine("mono/utils/mono-networkinterfaces.c"), MonoSourceDir.Combine("mono/utils/mono-os-mutex.c"), MonoSourceDir.Combine("mono/utils/mono-path.c"), MonoSourceDir.Combine("mono/utils/mono-poll.c"), MonoSourceDir.Combine("mono/utils/mono-proclib-windows.c"), MonoSourceDir.Combine("mono/utils/mono-proclib.c"), MonoSourceDir.Combine("mono/utils/mono-property-hash.c"), MonoSourceDir.Combine("mono/utils/mono-publib.c"), MonoSourceDir.Combine("mono/utils/mono-sha1.c"), MonoSourceDir.Combine("mono/utils/mono-stdlib.c"), MonoSourceDir.Combine("mono/utils/mono-threads-coop.c"), MonoSourceDir.Combine("mono/utils/mono-threads-state-machine.c"), MonoSourceDir.Combine("mono/utils/mono-threads.c"), MonoSourceDir.Combine("mono/utils/mono-tls.c"), MonoSourceDir.Combine("mono/utils/mono-uri.c"), MonoSourceDir.Combine("mono/utils/mono-value-hash.c"), MonoSourceDir.Combine("mono/utils/monobitset.c"), MonoSourceDir.Combine("mono/utils/networking-missing.c"), MonoSourceDir.Combine("mono/utils/networking.c"), MonoSourceDir.Combine("mono/utils/parse.c"), MonoSourceDir.Combine("mono/utils/strenc.c"), MonoSourceDir.Combine("mono/utils/unity-rand.c"), MonoSourceDir.Combine("mono/utils/unity-time.c") }; if (npc.ToolChain.Architecture is EmscriptenArchitecture) { files.Add(MonoSourceDir.Combine("mono/utils/mono-hwcap-web.c")); } else if (npc.ToolChain.Architecture is x86Architecture || npc.ToolChain.Architecture is x64Architecture) { files.Add(MonoSourceDir.Combine("mono/utils/mono-hwcap-x86.c")); } if (npc.ToolChain.Architecture is ARMv7Architecture) { files.Add(MonoSourceDir.Combine("mono/utils/mono-hwcap-arm.c")); } if (npc.ToolChain.Architecture is Arm64Architecture) { files.Add(MonoSourceDir.Combine("mono/utils/mono-hwcap-arm64.c")); } if (managedDebuggingEnabled) { if (npc.ToolChain.Platform is WindowsPlatform) { files.AddRange(WindowsDebuggerMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is UniversalWindowsPlatform) { files.AddRange(WinRTDebuggerMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is AndroidPlatform) { files.AddRange(AndroidDebuggerMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is IosPlatform) { files.AddRange(iOSDebuggerMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is LinuxPlatform) { files.AddRange(LinuxDebuggerMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is MacOSXPlatform) { files.AddRange(OSXDebuggerMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } } else { if (npc.ToolChain.Platform is WindowsPlatform) { files.AddRange(WindowsDesktopMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is WindowsGamesPlatform) { files.AddRange(WindowsGamesMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is UniversalWindowsPlatform) { files.AddRange(WinRTMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is AndroidPlatform) { files.AddRange(AndroidMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is LinuxPlatform) { files.AddRange(LinuxMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is MacOSXPlatform) { files.AddRange(OSXMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir)); } } return(files.ToArray()); }
public static NPath[] GetEGLibSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir, bool managedDebuggingEnabled) { var files = new List <NPath> { MonoSourceDir.Combine("mono/eglib/garray.c"), MonoSourceDir.Combine("mono/eglib/gbytearray.c"), MonoSourceDir.Combine("mono/eglib/gdate-unity.c"), MonoSourceDir.Combine("mono/eglib/gdir-unity.c"), MonoSourceDir.Combine("mono/eglib/gerror.c"), MonoSourceDir.Combine("mono/eglib/gfile-unity.c"), MonoSourceDir.Combine("mono/eglib/gfile.c"), MonoSourceDir.Combine("mono/eglib/ghashtable.c"), MonoSourceDir.Combine("mono/eglib/giconv.c"), MonoSourceDir.Combine("mono/eglib/glist.c"), MonoSourceDir.Combine("mono/eglib/gmarkup.c"), MonoSourceDir.Combine("mono/eglib/gmem.c"), MonoSourceDir.Combine("mono/eglib/gmisc-unity.c"), MonoSourceDir.Combine("mono/eglib/goutput.c"), MonoSourceDir.Combine("mono/eglib/gpath.c"), MonoSourceDir.Combine("mono/eglib/gpattern.c"), MonoSourceDir.Combine("mono/eglib/gptrarray.c"), MonoSourceDir.Combine("mono/eglib/gqsort.c"), MonoSourceDir.Combine("mono/eglib/gqueue.c"), MonoSourceDir.Combine("mono/eglib/gshell.c"), MonoSourceDir.Combine("mono/eglib/gslist.c"), MonoSourceDir.Combine("mono/eglib/gspawn.c"), MonoSourceDir.Combine("mono/eglib/gstr.c"), MonoSourceDir.Combine("mono/eglib/gstring.c"), MonoSourceDir.Combine("mono/eglib/gunicode.c"), MonoSourceDir.Combine("mono/eglib/gutf8.c") }; if (managedDebuggingEnabled) { if (npc.ToolChain.Platform is WindowsPlatform) { files.AddRange(WindowsDebuggerMonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is UniversalWindowsPlatform) { files.AddRange(WinRTDebuggerMonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir)); } } else { if (npc.ToolChain.Platform is WindowsPlatform) { files.AddRange(WindowsDesktopMonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is WindowsGamesPlatform) { files.AddRange(WindowsGamesMonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is UniversalWindowsPlatform) { files.AddRange(WinRTMonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir)); } } return(files.ToArray()); }
public static NPath[] GetMiniSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(new[] { MonoSourceDir.Combine("mono/mini/debugger-agent.c") }); }
static BindGemResult BindGemOutputFor(CSharpProgram inputProgram, NativeProgramConfiguration config) => BindGemOutputFor(inputProgram, ((DotsRuntimeNativeProgramConfiguration)config).CSharpConfig);
public static NPath[] GetMetadataSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir, bool managedDebuggingEnabled) { var files = new List <NPath>(); if (managedDebuggingEnabled) { files.Add(MonoSourceDir.Combine("mono/metadata/mono-hash.c")); files.Add(MonoSourceDir.Combine("mono/metadata/profiler.c")); if (npc.ToolChain.Platform is WindowsPlatform) { files.AddRange(WindowsDebuggerMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is UniversalWindowsPlatform) { files.AddRange(WinRTDebuggerMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is AndroidPlatform) { files.AddRange(AndroidDebuggerMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is IosPlatform) { files.AddRange(iOSDebuggerMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is LinuxPlatform) { files.AddRange(LinuxDebuggerMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is MacOSXPlatform) { files.AddRange(OSXDebuggerMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir)); } } else { files.AddRange(new[] { MonoSourceDir.Combine("mono/metadata/appdomain.c"), MonoSourceDir.Combine("mono/metadata/assembly.c"), MonoSourceDir.Combine("mono/metadata/attach.c"), MonoSourceDir.Combine("mono/metadata/boehm-gc.c"), MonoSourceDir.Combine("mono/metadata/class-accessors.c"), MonoSourceDir.Combine("mono/metadata/class.c"), MonoSourceDir.Combine("mono/metadata/cominterop.c"), MonoSourceDir.Combine("mono/metadata/coree.c"), MonoSourceDir.Combine("mono/metadata/custom-attrs.c"), MonoSourceDir.Combine("mono/metadata/debug-helpers.c"), MonoSourceDir.Combine("mono/metadata/debug-mono-ppdb.c"), MonoSourceDir.Combine("mono/metadata/debug-mono-symfile.c"), MonoSourceDir.Combine("mono/metadata/decimal-ms.c"), MonoSourceDir.Combine("mono/metadata/domain.c"), MonoSourceDir.Combine("mono/metadata/dynamic-image.c"), MonoSourceDir.Combine("mono/metadata/dynamic-stream.c"), MonoSourceDir.Combine("mono/metadata/environment.c"), MonoSourceDir.Combine("mono/metadata/exception.c"), MonoSourceDir.Combine("mono/metadata/fdhandle.c"), MonoSourceDir.Combine("mono/metadata/file-mmap-posix.c"), MonoSourceDir.Combine("mono/metadata/file-mmap-windows.c"), MonoSourceDir.Combine("mono/metadata/filewatcher.c"), MonoSourceDir.Combine("mono/metadata/gc-stats.c"), MonoSourceDir.Combine("mono/metadata/gc.c"), MonoSourceDir.Combine("mono/metadata/handle.c"), MonoSourceDir.Combine("mono/metadata/icall-windows.c"), MonoSourceDir.Combine("mono/metadata/icall.c"), MonoSourceDir.Combine("mono/metadata/image.c"), MonoSourceDir.Combine("mono/metadata/jit-info.c"), MonoSourceDir.Combine("mono/metadata/loader.c"), MonoSourceDir.Combine("mono/metadata/locales.c"), MonoSourceDir.Combine("mono/metadata/lock-tracer.c"), MonoSourceDir.Combine("mono/metadata/marshal-windows.c"), MonoSourceDir.Combine("mono/metadata/marshal.c"), MonoSourceDir.Combine("mono/metadata/mempool.c"), MonoSourceDir.Combine("mono/metadata/metadata-cross-helpers.c"), MonoSourceDir.Combine("mono/metadata/metadata-verify.c"), MonoSourceDir.Combine("mono/metadata/metadata.c"), MonoSourceDir.Combine("mono/metadata/method-builder.c"), MonoSourceDir.Combine("mono/metadata/monitor.c"), MonoSourceDir.Combine("mono/metadata/mono-basic-block.c"), MonoSourceDir.Combine("mono/metadata/mono-conc-hash.c"), MonoSourceDir.Combine("mono/metadata/mono-config-dirs.c"), MonoSourceDir.Combine("mono/metadata/mono-config.c"), MonoSourceDir.Combine("mono/metadata/mono-debug.c"), MonoSourceDir.Combine("mono/metadata/mono-endian.c"), MonoSourceDir.Combine("mono/metadata/mono-hash.c"), MonoSourceDir.Combine("mono/metadata/mono-mlist.c"), MonoSourceDir.Combine("mono/metadata/mono-perfcounters.c"), MonoSourceDir.Combine("mono/metadata/mono-security-windows.c"), MonoSourceDir.Combine("mono/metadata/mono-security.c"), MonoSourceDir.Combine("mono/metadata/null-gc.c"), MonoSourceDir.Combine("mono/metadata/number-ms.c"), MonoSourceDir.Combine("mono/metadata/object.c"), MonoSourceDir.Combine("mono/metadata/opcodes.c"), MonoSourceDir.Combine("mono/metadata/profiler.c"), MonoSourceDir.Combine("mono/metadata/property-bag.c"), MonoSourceDir.Combine("mono/metadata/rand.c"), MonoSourceDir.Combine("mono/metadata/reflection.c"), MonoSourceDir.Combine("mono/metadata/remoting.c"), MonoSourceDir.Combine("mono/metadata/runtime.c"), MonoSourceDir.Combine("mono/metadata/security-core-clr.c"), MonoSourceDir.Combine("mono/metadata/security-manager.c"), MonoSourceDir.Combine("mono/metadata/seq-points-data.c"), MonoSourceDir.Combine("mono/metadata/sgen-bridge.c"), MonoSourceDir.Combine("mono/metadata/sgen-mono.c"), MonoSourceDir.Combine("mono/metadata/sgen-new-bridge.c"), MonoSourceDir.Combine("mono/metadata/sgen-old-bridge.c"), MonoSourceDir.Combine("mono/metadata/sgen-stw.c"), MonoSourceDir.Combine("mono/metadata/sgen-tarjan-bridge.c"), MonoSourceDir.Combine("mono/metadata/sgen-toggleref.c"), MonoSourceDir.Combine("mono/metadata/sre-encode.c"), MonoSourceDir.Combine("mono/metadata/sre-save.c"), MonoSourceDir.Combine("mono/metadata/sre.c"), MonoSourceDir.Combine("mono/metadata/string-icalls.c"), MonoSourceDir.Combine("mono/metadata/sysmath.c"), MonoSourceDir.Combine("mono/metadata/threadpool-io.c"), MonoSourceDir.Combine("mono/metadata/threadpool-worker-default.c"), MonoSourceDir.Combine("mono/metadata/threadpool.c"), MonoSourceDir.Combine("mono/metadata/threads.c"), MonoSourceDir.Combine("mono/metadata/unity-icall.c"), MonoSourceDir.Combine("mono/metadata/unity-liveness.c"), MonoSourceDir.Combine("mono/metadata/unity-utils.c"), MonoSourceDir.Combine("mono/metadata/verify.c"), MonoSourceDir.Combine("mono/metadata/w32file.c"), MonoSourceDir.Combine("mono/metadata/w32handle-namespace.c"), MonoSourceDir.Combine("mono/metadata/w32handle.c"), MonoSourceDir.Combine("mono/metadata/w32process.c"), MonoSourceDir.Combine("mono/metadata/w32socket.c") }); if (npc.ToolChain.Platform is WindowsPlatform) { files.AddRange(WindowsDesktopMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is WindowsGamesPlatform) { files.AddRange(WindowsGamesMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is UniversalWindowsPlatform) { files.AddRange(WinRTMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is AndroidPlatform) { files.AddRange(AndroidMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is LinuxPlatform) { files.AddRange(LinuxMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); } if (npc.ToolChain.Platform is MacOSXPlatform) { files.AddRange(OSXMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir)); } } return(files.ToArray()); }
static IEnumerable <BindGemResult> BindGemOutputFor(IEnumerable <CSharpProgram> inputPrograms, NativeProgramConfiguration config) => inputPrograms.Select(p => BindGemOutputFor(p, config)).ExcludeNulls();
public static NPath[] GetMetadataDebuggerSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir) { return(UnityMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir)); }
public static DotNetAssembly SetupInvocation(DotNetAssembly inputGame, NPath outputPath, NativeProgramConfiguration config) { return(inputGame.ApplyDotNetAssembliesPostProcessor(outputPath, (inputAssemblies, targetDir) => AddActions(inputAssemblies, targetDir, config) )); }