static bool IsPrecompiledAssemblyCompatibleWithBuildTarget(PrecompiledAssembly compiledAssembly, BuildTarget buildTarget)
        {
            if (buildTarget == BuildTarget.WSAPlayer)
            {
                // Apparently this is used for IL2CPP too. TO DO: figure out why we need this (.winmd files end up not being referenced when this gets removed)
                bool compiledAssemblyCompatibleWithDotNet = (compiledAssembly.Flags & AssemblyFlags.UseForDotNet) == AssemblyFlags.UseForDotNet;
                return(compiledAssemblyCompatibleWithDotNet);
            }

            bool compiledAssemblyCompatibleWithMono = (compiledAssembly.Flags & AssemblyFlags.UseForMono) == AssemblyFlags.UseForMono;

            return(compiledAssemblyCompatibleWithMono);
        }
Example #2
0
        static bool IsPrecompiledAssemblyCompatibleWithScriptAssembly(PrecompiledAssembly compiledAssembly, ScriptAssembly scriptAssembly)
        {
            bool useDotNet = WSAHelpers.UseDotNetCore(scriptAssembly);

            if (useDotNet)
            {
                bool compiledAssemblyCompatibleWithDotNet = (compiledAssembly.Flags & AssemblyFlags.UseForDotNet) == AssemblyFlags.UseForDotNet;
                return(compiledAssemblyCompatibleWithDotNet);
            }

            bool compiledAssemblyCompatibleWithMono = (compiledAssembly.Flags & AssemblyFlags.UseForMono) == AssemblyFlags.UseForMono;

            return(compiledAssemblyCompatibleWithMono);
        }
Example #3
0
        private static bool IsCompiledAssemblyCompatibleWithTargetAssembly(PrecompiledAssembly compiledAssembly, EditorBuildRules.TargetAssembly targetAssembly, BuildTarget buildTarget, EditorBuildRules.TargetAssembly[] customTargetAssemblies)
        {
            bool flag = WSAHelpers.UseDotNetCore(targetAssembly.Filename, buildTarget, customTargetAssemblies);
            bool result;

            if (flag)
            {
                bool flag2 = (compiledAssembly.Flags & AssemblyFlags.UseForDotNet) == AssemblyFlags.UseForDotNet;
                result = flag2;
            }
            else
            {
                bool flag3 = (compiledAssembly.Flags & AssemblyFlags.UseForMono) == AssemblyFlags.UseForMono;
                result = flag3;
            }
            return(result);
        }
Example #4
0
 public static bool IsPrecompiledAssemblyNunit(ref PrecompiledAssembly precompiledAssembly)
 {
     return(AssetPath.GetFileName(precompiledAssembly.Path) == k_NunitAssemblyName);
 }
Example #5
0
        internal static void AddScriptAssemblyReferences(ref ScriptAssembly scriptAssembly, EditorBuildRules.TargetAssembly targetAssembly, ScriptAssemblySettings settings, BuildFlags buildFlags, EditorBuildRules.CompilationAssemblies assemblies, IDictionary <EditorBuildRules.TargetAssembly, ScriptAssembly> targetToScriptAssembly, string filenameSuffix)
        {
            List <ScriptAssembly> list  = new List <ScriptAssembly>();
            List <string>         list2 = new List <string>();
            bool flag  = (buildFlags & BuildFlags.BuildingForEditor) == BuildFlags.BuildingForEditor;
            bool flag2 = (targetAssembly.Flags & AssemblyFlags.EditorOnly) == AssemblyFlags.EditorOnly;

            if (assemblies.UnityAssemblies != null)
            {
                PrecompiledAssembly[] unityAssemblies = assemblies.UnityAssemblies;
                for (int i = 0; i < unityAssemblies.Length; i++)
                {
                    PrecompiledAssembly compiledAssembly = unityAssemblies[i];
                    if (flag || flag2)
                    {
                        if ((compiledAssembly.Flags & AssemblyFlags.UseForMono) != AssemblyFlags.None)
                        {
                            list2.Add(compiledAssembly.Path);
                        }
                    }
                    else if ((compiledAssembly.Flags & AssemblyFlags.EditorOnly) != AssemblyFlags.EditorOnly)
                    {
                        if (EditorBuildRules.IsCompiledAssemblyCompatibleWithTargetAssembly(compiledAssembly, targetAssembly, settings.BuildTarget, assemblies.CustomTargetAssemblies))
                        {
                            list2.Add(compiledAssembly.Path);
                        }
                    }
                }
            }
            foreach (EditorBuildRules.TargetAssembly current in targetAssembly.References)
            {
                ScriptAssembly item;
                if (targetToScriptAssembly.TryGetValue(current, out item))
                {
                    list.Add(item);
                }
                else
                {
                    string text = Path.Combine(settings.OutputDirectory, current.Filename);
                    if (!string.IsNullOrEmpty(filenameSuffix))
                    {
                        text = text.Replace(".dll", filenameSuffix + ".dll");
                    }
                    if (File.Exists(text))
                    {
                        list2.Add(text);
                    }
                }
            }
            if (assemblies.CustomTargetAssemblies != null && targetAssembly.Type == EditorBuildRules.TargetAssemblyType.Predefined)
            {
                EditorBuildRules.TargetAssembly[] customTargetAssemblies = assemblies.CustomTargetAssemblies;
                for (int j = 0; j < customTargetAssemblies.Length; j++)
                {
                    EditorBuildRules.TargetAssembly key = customTargetAssemblies[j];
                    ScriptAssembly item2;
                    if (targetToScriptAssembly.TryGetValue(key, out item2))
                    {
                        list.Add(item2);
                    }
                }
            }
            if (assemblies.PrecompiledAssemblies != null)
            {
                PrecompiledAssembly[] precompiledAssemblies = assemblies.PrecompiledAssemblies;
                for (int k = 0; k < precompiledAssemblies.Length; k++)
                {
                    PrecompiledAssembly compiledAssembly2 = precompiledAssemblies[k];
                    bool flag3 = (compiledAssembly2.Flags & AssemblyFlags.EditorOnly) == AssemblyFlags.EditorOnly;
                    if (!flag3 || flag2)
                    {
                        if (EditorBuildRules.IsCompiledAssemblyCompatibleWithTargetAssembly(compiledAssembly2, targetAssembly, settings.BuildTarget, assemblies.CustomTargetAssemblies))
                        {
                            list2.Add(compiledAssembly2.Path);
                        }
                    }
                }
            }
            if (flag && assemblies.EditorAssemblyReferences != null)
            {
                list2.AddRange(assemblies.EditorAssemblyReferences);
            }
            scriptAssembly.ScriptAssemblyReferences = list.ToArray();
            scriptAssembly.References = list2.ToArray();
        }