internal static string[] GetPrecompiledAssemblyNames(PrecompiledAssemblyProviderBase precompiledAssemblyProvider) { return(precompiledAssemblyProvider.GetPrecompiledAssemblies(true, EditorUserBuildSettings.activeBuildTargetGroup, EditorUserBuildSettings.activeBuildTarget) .Where(x => (x.Flags & sc.AssemblyFlags.UserAssembly) == sc.AssemblyFlags.UserAssembly) .Select(x => AssetPath.GetFileName(x.Path)) .ToArray()); }
public override void OnEnable() { base.OnEnable(); m_AssemblyName = extraDataSerializedObject.FindProperty("assemblyName"); InitializeReorderableLists(); m_SemVersionRanges = new SemVersionRangesFactory(); m_AllowUnsafeCode = extraDataSerializedObject.FindProperty("allowUnsafeCode"); m_UseGUIDs = extraDataSerializedObject.FindProperty("useGUIDs"); m_AutoReferenced = extraDataSerializedObject.FindProperty("autoReferenced"); m_OverrideReferences = extraDataSerializedObject.FindProperty("overrideReferences"); m_CompatibleWithAnyPlatform = extraDataSerializedObject.FindProperty("compatibleWithAnyPlatform"); m_PlatformCompatibility = extraDataSerializedObject.FindProperty("platformCompatibility"); m_NoEngineReferences = extraDataSerializedObject.FindProperty("noEngineReferences"); m_AssemblyProvider = EditorCompilationInterface.Instance.PrecompiledAssemblyProvider; AssemblyReloadEvents.afterAssemblyReload += AfterAssemblyReload; }
public override void OnEnable() { base.OnEnable(); //Ensure UIElements handles the IMGUI container with margins alwaysAllowExpansion = true; m_AssemblyName = extraDataSerializedObject.FindProperty("assemblyName"); InitializeReorderableLists(); m_SemVersionRanges.Clear(); m_UnityVersionRanges.Clear(); m_RootNamespace = extraDataSerializedObject.FindProperty("rootNamespace"); m_AllowUnsafeCode = extraDataSerializedObject.FindProperty("allowUnsafeCode"); m_UseGUIDs = extraDataSerializedObject.FindProperty("useGUIDs"); m_AutoReferenced = extraDataSerializedObject.FindProperty("autoReferenced"); m_OverrideReferences = extraDataSerializedObject.FindProperty("overrideReferences"); m_CompatibleWithAnyPlatform = extraDataSerializedObject.FindProperty("compatibleWithAnyPlatform"); m_PlatformCompatibility = extraDataSerializedObject.FindProperty("platformCompatibility"); m_NoEngineReferences = extraDataSerializedObject.FindProperty("noEngineReferences"); m_AssemblyProvider = EditorCompilationInterface.Instance.PrecompiledAssemblyProvider; m_AssetIsReadonly = false; foreach (var assetPath in targets.OfType <AssetImporter>().Select(i => i.assetPath)) { try { using (var fs = File.Open(assetPath, FileMode.Open, FileAccess.Write)) {} } catch { // can't open in write mode, must be readonly m_AssetIsReadonly = true; } } AssemblyReloadEvents.afterAssemblyReload += AfterAssemblyReload; }
internal static string GetPrecompiledAssemblyPathFromAssemblyName(string assemblyName, PrecompiledAssemblyProviderBase precompiledAssemblyProvider) { var precompiledAssemblies = precompiledAssemblyProvider.GetPrecompiledAssemblies(true, EditorUserBuildSettings.activeBuildTargetGroup, EditorUserBuildSettings.activeBuildTarget); foreach (var assembly in precompiledAssemblies) { if ((assembly.Flags & sc.AssemblyFlags.UserAssembly) == sc.AssemblyFlags.UserAssembly && AssetPath.GetFileName(assembly.Path) == assemblyName) { return(assembly.Path); } } return(null); }
internal static string[] GetPrecompiledAssemblyPaths(PrecompiledAssemblySources precompiledAssemblySources, PrecompiledAssemblyProviderBase precompiledAssemblyProvider) { HashSet <string> assemblyNames = new HashSet <string>(); sc.AssemblyFlags flags = sc.AssemblyFlags.None; if ((precompiledAssemblySources & PrecompiledAssemblySources.SystemAssembly) != 0) { foreach (var a in MonoLibraryHelpers.GetSystemLibraryReferences(ApiCompatibilityLevel.NET_4_6, Scripting.ScriptCompilers.CSharpSupportedLanguage)) { assemblyNames.Add(a); } } if ((precompiledAssemblySources & PrecompiledAssemblySources.UnityEngine) != 0) { flags |= sc.AssemblyFlags.UnityModule; } if ((precompiledAssemblySources & PrecompiledAssemblySources.UnityEditor) != 0) { flags |= sc.AssemblyFlags.EditorOnly; } if ((precompiledAssemblySources & PrecompiledAssemblySources.UserAssembly) != 0) { flags |= sc.AssemblyFlags.UserAssembly; } var precompiledAssemblies = precompiledAssemblyProvider.GetPrecompiledAssemblies(true, EditorUserBuildSettings.activeBuildTargetGroup, EditorUserBuildSettings.activeBuildTarget).Concat(EditorCompilationInterface.Instance.GetUnityAssemblies()); foreach (var a in precompiledAssemblies.Where(x => (x.Flags & flags) != 0)) { assemblyNames.Add(a.Path); } return(assemblyNames.ToArray()); }
internal static string GetPrecompiledAssemblyPathFromAssemblyName(string assemblyName, PrecompiledAssemblyProviderBase precompiledAssemblyProvider, string[] extraScriptingDefines = null) { var precompiledAssemblies = precompiledAssemblyProvider.GetPrecompiledAssemblies( EditorScriptCompilationOptions.BuildingForEditor | EditorScriptCompilationOptions.BuildingWithAsserts, EditorUserBuildSettings.activeBuildTargetGroup, EditorUserBuildSettings.activeBuildTarget, extraScriptingDefines); foreach (var assembly in precompiledAssemblies) { if ((assembly.Flags & sc.AssemblyFlags.UserAssembly) == sc.AssemblyFlags.UserAssembly && AssetPath.GetFileName(assembly.Path) == assemblyName) { return(assembly.Path); } } return(null); }
internal static string[] GetPrecompiledAssemblyPaths(PrecompiledAssemblySources precompiledAssemblySources, PrecompiledAssemblyProviderBase precompiledAssemblyProvider, BuildTargetGroup buildTargetGroup, BuildTarget buildTarget) { HashSet <string> assemblyNames = new HashSet <string>(); sc.AssemblyFlags flags = sc.AssemblyFlags.None; if ((precompiledAssemblySources & PrecompiledAssemblySources.SystemAssembly) != 0) { foreach (var a in MonoLibraryHelpers.GetSystemLibraryReferences(ApiCompatibilityLevel.NET_Unity_4_8)) { assemblyNames.Add(a); } } if ((precompiledAssemblySources & (PrecompiledAssemblySources.UnityEngine | precompiledAssemblySources & PrecompiledAssemblySources.UnityAssembly)) != 0) { flags |= sc.AssemblyFlags.UnityModule; } if ((precompiledAssemblySources & (PrecompiledAssemblySources.UnityEditor | precompiledAssemblySources & PrecompiledAssemblySources.UnityAssembly)) != 0) { flags |= sc.AssemblyFlags.EditorOnly; } if ((precompiledAssemblySources & PrecompiledAssemblySources.UserAssembly) != 0) { flags |= sc.AssemblyFlags.UserAssembly; } var precompiledAssemblies = precompiledAssemblyProvider.GetPrecompiledAssemblies( EditorScriptCompilationOptions.BuildingForEditor | EditorScriptCompilationOptions.BuildingWithAsserts, buildTargetGroup, buildTarget) .Concat(precompiledAssemblyProvider.GetUnityAssemblies(true, buildTarget)); foreach (var a in precompiledAssemblies.Where(x => (x.Flags & flags) != 0)) { assemblyNames.Add(a.Path); } return(assemblyNames.ToArray()); }
internal static string[] GetPrecompiledAssemblyPaths(PrecompiledAssemblySources precompiledAssemblySources, PrecompiledAssemblyProviderBase precompiledAssemblyProvider) { return(GetPrecompiledAssemblyPaths(precompiledAssemblySources, precompiledAssemblyProvider, EditorUserBuildSettings.activeBuildTargetGroup, EditorUserBuildSettings.activeBuildTarget)); }
public ILPostProcessCompiledAssembly(EditorBuildRules.TargetAssembly targetAssembly, string outputPath, PrecompiledAssemblyProviderBase precompiledAssemblyProvider) { m_AssemblyFilename = targetAssembly.Filename; Name = Path.GetFileNameWithoutExtension(m_AssemblyFilename); var precompiledAssembliesDictionary = precompiledAssemblyProvider.GetPrecompiledAssembliesDictionary(true, BuildTargetGroup.Unknown, BuildTarget.Android); var precompiledAssemblyReferences = targetAssembly.ExplicitPrecompiledReferences .Where(x => precompiledAssembliesDictionary.ContainsKey(x)) .Select(x => precompiledAssembliesDictionary[x].Path); var targetAssemblyReferences = targetAssembly.References.Select(a => a.FullPath(outputPath)); References = precompiledAssemblyReferences.Concat(targetAssemblyReferences).ToArray(); Defines = targetAssembly.Defines; m_OutputPath = outputPath; }