Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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);
        }
Пример #6
0
        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));
        }