Beispiel #1
0
        private void RunIl2CppWithArguments(List <string> arguments, Action <ProcessStartInfo> setupStartInfo, string workingDirectory)
        {
            var args = arguments.Aggregate(String.Empty, (current, arg) => current + arg + " ");

            var    useNetCore = ShouldUseIl2CppCore();
            string il2CppPath = useNetCore ? GetIl2CppCoreExe() : GetIl2CppExe();

            Console.WriteLine("Invoking il2cpp with arguments: " + args);

            CompilerOutputParserBase il2cppOutputParser = m_PlatformProvider.CreateIl2CppOutputParser();

            if (il2cppOutputParser == null)
            {
                il2cppOutputParser = new Il2CppOutputParser();
            }

            if (useNetCore)
            {
                Runner.RunNetCoreProgram(il2CppPath, args, workingDirectory, il2cppOutputParser, setupStartInfo);
            }
            else
            {
                Runner.RunManagedProgram(il2CppPath, args, workingDirectory, il2cppOutputParser, setupStartInfo);
            }
        }
Beispiel #2
0
        private void RunIl2CppWithArguments(List <string> arguments, Action <ProcessStartInfo> setupStartInfo)
        {
            var cppOutputDirectoryInBuildCache     = GetCppOutputDirectory(m_PlatformProvider.il2cppBuildCacheDirectory);
            var cppOutputDirectoryInStagingArea    = GetCppOutputDirectory(m_TempFolder);
            var nativeOutputDirectoryInBuildCache  = GetNativeOutputRelativeDirectory(m_PlatformProvider.il2cppBuildCacheDirectory);
            var nativeOutputDirectoryInStagingArea = GetNativeOutputRelativeDirectory(m_StagingAreaData);

            var il2cppOutputParser = new Il2CppOutputParser(Path.Combine(cppOutputDirectoryInBuildCache, "Il2CppToEditorData.json"));

            arguments.Add("--convert-in-graph");

            var args = arguments.Aggregate(String.Empty, (current, arg) => current + arg + " ");

            Console.WriteLine("Invoking il2cpp with arguments: " + args);
            Runner.RunNetCoreProgram(GetIl2CppExe(), args, m_PlatformProvider.il2cppBuildCacheDirectory, il2cppOutputParser, setupStartInfo);

            // Copy IL2CPP outputs to StagingArea
            if (Directory.Exists(nativeOutputDirectoryInBuildCache))
            {
                FileUtil.CopyDirectoryRecursive(nativeOutputDirectoryInBuildCache, nativeOutputDirectoryInStagingArea, true);
            }

            // Copy Generated C++ files and Data directory to StagingArea.
            // This directory will only be present when using "--convert-to-cpp" with IL2CPP.
            if (Directory.Exists(cppOutputDirectoryInBuildCache))
            {
                FileUtil.CreateOrCleanDirectory(cppOutputDirectoryInStagingArea);
                FileUtil.CopyDirectoryRecursive(cppOutputDirectoryInBuildCache, cppOutputDirectoryInStagingArea);
            }
        }
        private void RunIl2CppWithArguments(List <string> arguments, Action <ProcessStartInfo> setupStartInfo, string workingDirectory)
        {
            string text = arguments.Aggregate(string.Empty, (string current, string arg) => current + arg + " ");
            bool   flag = this.ShouldUseIl2CppCore();
            string exe  = (!flag) ? this.GetIl2CppExe() : this.GetIl2CppCoreExe();

            Console.WriteLine("Invoking il2cpp with arguments: " + text);
            CompilerOutputParserBase compilerOutputParserBase = this.m_PlatformProvider.CreateIl2CppOutputParser();

            if (compilerOutputParserBase == null)
            {
                compilerOutputParserBase = new Il2CppOutputParser();
            }
            if (flag)
            {
                Runner.RunNetCoreProgram(exe, text, workingDirectory, compilerOutputParserBase, setupStartInfo);
            }
            else
            {
                Runner.RunManagedProgram(exe, text, workingDirectory, compilerOutputParserBase, setupStartInfo);
            }
        }