private static bool StripAssembliesTo(string[] assemblies, string[] searchDirs, string outputFolder, string workingDirectory, out string output, out string error, string linkerPath, IIl2CppPlatformProvider platformProvider, IEnumerable <string> additionalBlacklist, bool developmentBuild) { if (!Directory.Exists(outputFolder)) { Directory.CreateDirectory(outputFolder); } additionalBlacklist = (from s in additionalBlacklist select(!Path.IsPathRooted(s)) ? Path.Combine(workingDirectory, s) : s).Where(new Func <string, bool>(File.Exists)); IEnumerable <string> userBlacklistFiles = AssemblyStripper.GetUserBlacklistFiles(); foreach (string current in userBlacklistFiles) { Console.WriteLine("UserBlackList: " + current); } additionalBlacklist = additionalBlacklist.Concat(userBlacklistFiles); List <string> list = new List <string> { "-out \"" + outputFolder + "\"", "-l none", "-c link", "-b " + developmentBuild, "-x \"" + AssemblyStripper.GetModuleWhitelist("Core", platformProvider.moduleStrippingInformationFolder) + "\"", "-f \"" + Path.Combine(platformProvider.il2CppFolder, "LinkerDescriptors") + "\"" }; list.AddRange(from path in additionalBlacklist select "-x \"" + path + "\""); list.AddRange(from d in searchDirs select "-d \"" + d + "\""); list.AddRange(from assembly in assemblies select "-a \"" + Path.GetFullPath(assembly) + "\""); return(AssemblyStripper.RunAssemblyLinker(list, out output, out error, linkerPath, workingDirectory)); }
private static bool AddWhiteListsForModules(IEnumerable <string> nativeModules, ref IEnumerable <string> blacklists, string moduleStrippingInformationFolder, BuildReport buildReport) { StrippingInfo buildReportData = StrippingInfo.GetBuildReportData(buildReport); bool flag = false; foreach (string current in nativeModules) { string moduleWhitelist = AssemblyStripper.GetModuleWhitelist(current, moduleStrippingInformationFolder); if (File.Exists(moduleWhitelist)) { if (!blacklists.Contains(moduleWhitelist)) { blacklists = blacklists.Concat(new string[] { moduleWhitelist }); flag = true; } List <string> dependentModules = AssemblyStripper.GetDependentModules(moduleWhitelist); if (buildReportData != null) { foreach (string current2 in dependentModules) { buildReportData.RegisterDependency(current2, current); } } flag = (flag || AssemblyStripper.AddWhiteListsForModules(dependentModules, ref blacklists, moduleStrippingInformationFolder, buildReport)); } } return(flag); }
private static bool AddWhiteListsForModules(IEnumerable <string> nativeModules, ref IEnumerable <string> blacklists, string moduleStrippingInformationFolder) { bool result = false; foreach (string current in nativeModules) { string moduleWhitelist = AssemblyStripper.GetModuleWhitelist(current, moduleStrippingInformationFolder); if (File.Exists(moduleWhitelist)) { if (!blacklists.Contains(moduleWhitelist)) { blacklists = blacklists.Concat(new string[] { moduleWhitelist }); result = true; } } } return(result); }
private static bool StripAssembliesTo(string[] assemblies, string[] searchDirs, string outputFolder, string workingDirectory, out string output, out string error, string linkerPath, IIl2CppPlatformProvider platformProvider, IEnumerable <string> additionalBlacklist) { if (!Directory.Exists(outputFolder)) { Directory.CreateDirectory(outputFolder); } IEnumerable <string> arg_50_0 = from s in additionalBlacklist select(!Path.IsPathRooted(s)) ? Path.Combine(workingDirectory, s) : s; if (AssemblyStripper.< > f__mg$cache0 == null) { AssemblyStripper.< > f__mg$cache0 = new Func <string, bool>(File.Exists); } additionalBlacklist = arg_50_0.Where(AssemblyStripper.< > f__mg$cache0); IEnumerable <string> userBlacklistFiles = AssemblyStripper.GetUserBlacklistFiles(); foreach (string current in userBlacklistFiles) { Console.WriteLine("UserBlackList: " + current); } additionalBlacklist = additionalBlacklist.Concat(userBlacklistFiles); List <string> list = new List <string> { "--api " + PlayerSettings.GetApiCompatibilityLevel(EditorUserBuildSettings.activeBuildTargetGroup).ToString(), "-out \"" + outputFolder + "\"", "-l none", "-c link", "-b true", "-x \"" + AssemblyStripper.GetModuleWhitelist("Core", platformProvider.moduleStrippingInformationFolder) + "\"", "-f \"" + Path.Combine(platformProvider.il2CppFolder, "LinkerDescriptors") + "\"" }; list.AddRange(from path in additionalBlacklist select "-x \"" + path + "\""); list.AddRange(from d in searchDirs select "-d \"" + d + "\""); list.AddRange(from assembly in assemblies select "-a \"" + Path.GetFullPath(assembly) + "\""); return(AssemblyStripper.RunAssemblyLinker(list, out output, out error, linkerPath, workingDirectory)); }
private static bool AddWhiteListsForModules(IEnumerable <string> nativeModules, ref IEnumerable <string> blacklists, string moduleStrippingInformationFolder) { bool flag = false; foreach (string nativeModule in nativeModules) { string moduleWhitelist = AssemblyStripper.GetModuleWhitelist(nativeModule, moduleStrippingInformationFolder); if (File.Exists(moduleWhitelist)) { if (!blacklists.Contains <string>(moduleWhitelist)) { blacklists = blacklists.Concat <string>((IEnumerable <string>) new string[1] { moduleWhitelist }); flag = true; } flag = flag || AssemblyStripper.AddWhiteListsForModules((IEnumerable <string>)AssemblyStripper.GetDependentModules(moduleWhitelist), ref blacklists, moduleStrippingInformationFolder); } } return(flag); }
private static bool StripAssembliesTo(string[] assemblies, string[] searchDirs, string outputFolder, string workingDirectory, out string output, out string error, string linkerPath, IIl2CppPlatformProvider platformProvider, IEnumerable <string> additionalBlacklist, bool developmentBuild) { // ISSUE: object of a compiler-generated type is created // ISSUE: variable of a compiler-generated type AssemblyStripper.\u003CStripAssembliesTo\u003Ec__AnonStorey65 assembliesToCAnonStorey65 = new AssemblyStripper.\u003CStripAssembliesTo\u003Ec__AnonStorey65(); // ISSUE: reference to a compiler-generated field assembliesToCAnonStorey65.workingDirectory = workingDirectory; if (!Directory.Exists(outputFolder)) { Directory.CreateDirectory(outputFolder); } // ISSUE: reference to a compiler-generated method additionalBlacklist = additionalBlacklist.Select <string, string>(new Func <string, string>(assembliesToCAnonStorey65.\u003C\u003Em__D4)).Where <string>(new Func <string, bool>(File.Exists)); IEnumerable <string> userBlacklistFiles = AssemblyStripper.GetUserBlacklistFiles(); foreach (string str in userBlacklistFiles) { Console.WriteLine("UserBlackList: " + str); } additionalBlacklist = additionalBlacklist.Concat <string>(userBlacklistFiles); List <string> stringList = new List <string>() { "-out \"" + outputFolder + "\"", "-l none", "-c link", "-b " + (object)developmentBuild, "-x \"" + AssemblyStripper.GetModuleWhitelist("Core", platformProvider.moduleStrippingInformationFolder) + "\"", "-f \"" + Path.Combine(platformProvider.il2CppFolder, "LinkerDescriptors") + "\"" }; stringList.AddRange(additionalBlacklist.Select <string, string>((Func <string, string>)(path => "-x \"" + path + "\""))); stringList.AddRange(((IEnumerable <string>)searchDirs).Select <string, string>((Func <string, string>)(d => "-d \"" + d + "\""))); stringList.AddRange(((IEnumerable <string>)assemblies).Select <string, string>((Func <string, string>)(assembly => "-a \"" + Path.GetFullPath(assembly) + "\""))); // ISSUE: reference to a compiler-generated field return(AssemblyStripper.RunAssemblyLinker((IEnumerable <string>)stringList, out output, out error, linkerPath, assembliesToCAnonStorey65.workingDirectory)); }