コード例 #1
0
    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);
        }
    }
コード例 #2
0
        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());
        }
コード例 #3
0
    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");
    }
コード例 #4
0
        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());
        }
コード例 #5
0
        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());
        }
コード例 #6
0
        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());
        }
コード例 #7
0
 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")
     });
 }
コード例 #8
0
        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}");
        }
コード例 #9
0
 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")
     });
 }
コード例 #10
0
        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());
        }
コード例 #11
0
    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);
        }
    }
コード例 #12
0
    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);
        }
    }
コード例 #13
0
    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)));
    }
コード例 #14
0
    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());
    }
コード例 #15
0
    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());
    }
コード例 #16
0
 public static NPath[] GetUtilsSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir)
 {
     return(UnityMonoSourceFileList.GetUtilsSourceFiles(npc, MonoSourceDir));
 }
コード例 #17
0
 public static NPath[] GetEGLibSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir)
 {
     return(WindowsDesktopMonoSourceFileList.GetEGLibSourceFiles(npc, MonoSourceDir));
 }
コード例 #18
0
ファイル: Il2Cpp.bee.cs プロジェクト: isaveu/SimpleUIDemo
 public static bool ManagedDebuggingIsEnabled(NativeProgramConfiguration c)
 {
     return(((DotsRuntimeNativeProgramConfiguration)c).CSharpConfig.EnableManagedDebugging);
 }
コード例 #19
0
 public static NPath[] GetEGLibSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir)
 {
     return(new[] { MonoSourceDir.Combine("mono/eglib/gunicode-win32.c") });
 }
コード例 #20
0
 public static NPath[] GetMetadataSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir)
 {
     return(WindowsSharedMonoSourceFileList.GetMetadataSourceFiles(npc, MonoSourceDir));
 }
コード例 #21
0
        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" });
        }
コード例 #22
0
        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());
        }
コード例 #23
0
        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());
        }
コード例 #24
0
 public static NPath[] GetMiniSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir)
 {
     return(new[] { MonoSourceDir.Combine("mono/mini/debugger-agent.c") });
 }
コード例 #25
0
ファイル: BindGem.cs プロジェクト: spicysoft/h5-count-shape
 static BindGemResult BindGemOutputFor(CSharpProgram inputProgram, NativeProgramConfiguration config) => BindGemOutputFor(inputProgram, ((DotsRuntimeNativeProgramConfiguration)config).CSharpConfig);
コード例 #26
0
        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());
        }
コード例 #27
0
ファイル: BindGem.cs プロジェクト: spicysoft/h5-count-shape
 static IEnumerable <BindGemResult> BindGemOutputFor(IEnumerable <CSharpProgram> inputPrograms, NativeProgramConfiguration config) => inputPrograms.Select(p => BindGemOutputFor(p, config)).ExcludeNulls();
コード例 #28
0
 public static NPath[] GetMetadataDebuggerSourceFiles(NativeProgramConfiguration npc, NPath MonoSourceDir)
 {
     return(UnityMonoSourceFileList.GetMetadataDebuggerSourceFiles(npc, MonoSourceDir));
 }
コード例 #29
0
 public static DotNetAssembly SetupInvocation(DotNetAssembly inputGame, NPath outputPath, NativeProgramConfiguration config)
 {
     return(inputGame.ApplyDotNetAssembliesPostProcessor(outputPath, (inputAssemblies, targetDir) => AddActions(inputAssemblies, targetDir, config)
                                                         ));
 }