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); }
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); }
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); }
public static bool IsPrecompiledAssemblyNunit(ref PrecompiledAssembly precompiledAssembly) { return(AssetPath.GetFileName(precompiledAssembly.Path) == k_NunitAssemblyName); }
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(); }