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); } }
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); } }