GetBuildTargetByName() private method

private GetBuildTargetByName ( string platform ) : BuildTarget
platform string
return BuildTarget
        public override string CalculateFinalPluginPath(string platformName, PluginImporter imp)
        {
            BuildTarget buildTargetByName = BuildPipeline.GetBuildTargetByName(platformName);
            bool        flag1             = buildTargetByName == BuildTarget.StandaloneWindows || buildTargetByName == BuildTarget.StandaloneWindows64;
            bool        flag2             = buildTargetByName == BuildTarget.StandaloneOSXIntel || buildTargetByName == BuildTarget.StandaloneOSXIntel64 || buildTargetByName == BuildTarget.StandaloneOSXUniversal;
            bool        flag3             = buildTargetByName == BuildTarget.StandaloneLinux || buildTargetByName == BuildTarget.StandaloneLinux64 || buildTargetByName == BuildTarget.StandaloneLinuxUniversal;

            if (!flag3 && !flag2 && !flag1)
            {
                throw new Exception(string.Format("Failed to resolve standalone platform, platform string '{0}', resolved target '{1}'", (object)platformName, (object)buildTargetByName.ToString()));
            }
            if (flag1 && !this.IsUsableOnWindows(imp) || flag2 && !this.IsUsableOnOSX(imp) || flag3 && !this.IsUsableOnLinux(imp))
            {
                return(string.Empty);
            }
            string platformData = imp.GetPlatformData(platformName, "CPU");

            if (string.Compare(platformData, "None", true) == 0)
            {
                return(string.Empty);
            }
            if (!string.IsNullOrEmpty(platformData) && string.Compare(platformData, "AnyCPU", true) != 0)
            {
                return(Path.Combine(platformData, Path.GetFileName(imp.assetPath)));
            }
            return(Path.GetFileName(imp.assetPath));
        }
        public override string CalculateFinalPluginPath(string platformName, PluginImporter imp)
        {
            BuildTarget buildTargetByName = BuildPipeline.GetBuildTargetByName(platformName);
            bool        flag  = (buildTargetByName == BuildTarget.StandaloneWindows) || (buildTargetByName == BuildTarget.StandaloneWindows64);
            bool        flag2 = ((buildTargetByName == BuildTarget.StandaloneOSXIntel) || (buildTargetByName == BuildTarget.StandaloneOSXIntel64)) || (buildTargetByName == BuildTarget.StandaloneOSXUniversal);
            bool        flag3 = ((buildTargetByName == BuildTarget.StandaloneLinux) || (buildTargetByName == BuildTarget.StandaloneLinux64)) || (buildTargetByName == BuildTarget.StandaloneLinuxUniversal);

            if ((!flag3 && !flag2) && !flag)
            {
                throw new Exception($"Failed to resolve standalone platform, platform string '{platformName}', resolved target '{buildTargetByName.ToString()}'");
            }
            if (flag && !this.IsUsableOnWindows(imp))
            {
                return(string.Empty);
            }
            if (flag2 && !this.IsUsableOnOSX(imp))
            {
                return(string.Empty);
            }
            if (flag3 && !this.IsUsableOnLinux(imp))
            {
                return(string.Empty);
            }
            string platformData = imp.GetPlatformData(platformName, "CPU");

            if (string.Compare(platformData, "None", true) == 0)
            {
                return(string.Empty);
            }
            if (!string.IsNullOrEmpty(platformData) && (string.Compare(platformData, "AnyCPU", true) != 0))
            {
                return(Path.Combine(platformData, Path.GetFileName(imp.assetPath)));
            }
            return(Path.GetFileName(imp.assetPath));
        }
 internal bool GetCompatibleWithPlatform(string platformName)
 {
     if (base.targets.Length > 1)
     {
         throw new InvalidOperationException("Cannot be used while multiple plugins are selected");
     }
     return(this.m_CompatibleWithPlatform[(int)BuildPipeline.GetBuildTargetByName(platformName)] == 1);
 }
Beispiel #4
0
        public static PluginImporter[] GetImporters(string platformName)
        {
            // The final list of importers that will be returned
            List <PluginImporter> finalImporters = new List <PluginImporter>();

            // Contains all unique finalPaths. Used to remove overridable plugins from the finalImporters list
            Dictionary <string, PluginImporter> uniqueFinalPathToImporterMap = new Dictionary <string, PluginImporter>();

            PluginImporter[]         allImporters            = GetAllImporters().Where(imp => imp.GetCompatibleWithPlatformOrAnyPlatformBuildTarget(platformName)).ToArray();
            IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(platformName);

            if (pluginImporterExtension == null)
            {
                pluginImporterExtension = ModuleManager.GetPluginImporterExtension(BuildPipeline.GetBuildTargetByName(platformName));
            }

            if (pluginImporterExtension == null)
            {
                return(allImporters);
            }

            // Go through all of the Importers for the specified platform and determine if any of the natively included Unity Plugins should be removed.
            // Removal should only happen if the user has included a plugin of the same name and they are copying to the same finalPath
            for (int i = 0; i < allImporters.Length; ++i)
            {
                PluginImporter currentImporter = allImporters[i];
                string         finalPluginPath = pluginImporterExtension.CalculateFinalPluginPath(platformName, currentImporter);

                // Only compare overridables if the plugin has a calculated finalPluginPath
                if (!string.IsNullOrEmpty(finalPluginPath))
                {
                    PluginImporter tempImporter;
                    if (!uniqueFinalPathToImporterMap.TryGetValue(finalPluginPath, out tempImporter))
                    {
                        // Unique Plugin found, add it to the list for comparing overridable plugins
                        // The first overridable plugin of it's kind should be added to the return list here.
                        uniqueFinalPathToImporterMap.Add(finalPluginPath, currentImporter);
                    }
                    else if (tempImporter.GetIsOverridable() && !currentImporter.GetIsOverridable())
                    {
                        // finalPluginPath isn't unique and the finalImporter already in the list is overriden by the new one,
                        // remove the overridable one.
                        uniqueFinalPathToImporterMap[finalPluginPath] = currentImporter;
                        finalImporters.Remove(tempImporter);
                    }
                    else if (currentImporter.GetIsOverridable())
                    {
                        // The current importer is going to the same final location as another, but
                        // this plugin is overridable, so don't include it.
                        continue;
                    }
                }

                finalImporters.Add(currentImporter);
            }

            return(finalImporters.ToArray());
        }
Beispiel #5
0
        public static PluginImporter[] GetImporters(string platformName)
        {
            List <PluginImporter> list = new List <PluginImporter>();
            Dictionary <string, PluginImporter> dictionary = new Dictionary <string, PluginImporter>();

            PluginImporter[] array = (from imp in PluginImporter.GetAllImporters()
                                      where PluginImporter.IsCompatible(imp, platformName)
                                      select imp).ToArray <PluginImporter>();
            IPluginImporterExtension pluginImporterExtension = ModuleManager.GetPluginImporterExtension(platformName);

            if (pluginImporterExtension == null)
            {
                pluginImporterExtension = ModuleManager.GetPluginImporterExtension(BuildPipeline.GetBuildTargetByName(platformName));
            }
            PluginImporter[] result;
            if (pluginImporterExtension == null)
            {
                result = array;
            }
            else
            {
                int i = 0;
                while (i < array.Length)
                {
                    PluginImporter pluginImporter = array[i];
                    string         text           = pluginImporterExtension.CalculateFinalPluginPath(platformName, pluginImporter);
                    if (!string.IsNullOrEmpty(text))
                    {
                        PluginImporter pluginImporter2;
                        if (!dictionary.TryGetValue(text, out pluginImporter2))
                        {
                            dictionary.Add(text, pluginImporter);
                        }
                        else if (pluginImporter2.GetIsOverridable() && !pluginImporter.GetIsOverridable())
                        {
                            dictionary[text] = pluginImporter;
                            list.Remove(pluginImporter2);
                        }
                        else if (pluginImporter.GetIsOverridable())
                        {
                            goto IL_106;
                        }
                        goto IL_FD;
                    }
                    goto IL_FD;
IL_106:
                    i++;
                    continue;
IL_FD:
                    list.Add(pluginImporter);
                    goto IL_106;
                }
                result = list.ToArray();
            }
            return(result);
        }
Beispiel #6
0
        // Used by extensions, for ex., Standalone where we have options for enabling/disabling platform in platform specific extensions
        internal Compatibility GetPlatformCompatibility(string platformName)
        {
            var buildTarget = BuildPipeline.GetBuildTargetByName(platformName);

            if (!IsValidBuildTarget(buildTarget))
            {
                return(Compatibility.NotCompatible);
            }

            return(m_CompatibleWithPlatform[(int)buildTarget]);
        }
Beispiel #7
0
        public override string CalculateFinalPluginPath(string platformName, PluginImporter imp)
        {
            BuildTarget target           = BuildPipeline.GetBuildTargetByName(platformName);
            bool        pluginForWindows = target == BuildTarget.StandaloneWindows || target == BuildTarget.StandaloneWindows64;

#pragma warning disable 612, 618
            bool pluginForOSX   = target == BuildTarget.StandaloneOSXIntel || target == BuildTarget.StandaloneOSXIntel64 || target == BuildTarget.StandaloneOSX;
            bool pluginForLinux = target == BuildTarget.StandaloneLinux || target == BuildTarget.StandaloneLinux64 || target == BuildTarget.StandaloneLinuxUniversal || target == BuildTarget.CloudRendering;
#pragma warning restore 612, 618

            if (!pluginForLinux && !pluginForOSX && !pluginForWindows)
            {
                throw new Exception(string.Format("Failed to resolve standalone platform, platform string '{0}', resolved target '{1}'",
                                                  platformName, target.ToString()));
            }

            if (pluginForWindows && !IsUsableOnWindows(imp))
            {
                return(string.Empty);
            }
            if (pluginForOSX && !IsUsableOnOSX(imp))
            {
                return(string.Empty);
            }
            if (pluginForLinux && !IsUsableOnLinux(imp))
            {
                return(string.Empty);
            }

            string cpu = imp.GetPlatformData(platformName, "CPU");

            if (string.Compare(cpu, "None", true) == 0)
            {
                return(string.Empty);
            }

            if (pluginForWindows)
            {
                // Fix case 1185926: plugins for x86_64 are supposed to be copied to Plugins/x86_64
                // Plugins for x86 are supposed to be copied to Plugins/x86
                var cpuName = target == BuildTarget.StandaloneWindows ? nameof(DesktopPluginCPUArchitecture.x86) : nameof(DesktopPluginCPUArchitecture.x86_64);
                return(Path.Combine(cpuName, Path.GetFileName(imp.assetPath)));
            }

            if (pluginForOSX)
            {
                // Add the correct architecture if not AnyCPU
                return(base.CalculateFinalPluginPath(platformName, imp));
            }

            // For files this will return filename, for directories, this will return last path component
            return(Path.GetFileName(imp.assetPath));
        }
Beispiel #8
0
        internal void SetPlatformCompatibility(string platformName, PluginImporterInspector.Compatibility compatibility)
        {
            if (compatibility == PluginImporterInspector.Compatibility.Mixed)
            {
                throw new ArgumentException("compatibility value cannot be Mixed");
            }
            int buildTargetByName = (int)BuildPipeline.GetBuildTargetByName(platformName);

            if (this.m_CompatibleWithPlatform[buildTargetByName] != compatibility)
            {
                this.m_CompatibleWithPlatform[buildTargetByName] = compatibility;
                this.m_HasModified = true;
            }
        }
Beispiel #9
0
        internal PluginImporterInspector.Compatibility GetPlatformCompatibility(string platformName)
        {
            BuildTarget buildTargetByName = BuildPipeline.GetBuildTargetByName(platformName);

            PluginImporterInspector.Compatibility result;
            if (!PluginImporterInspector.IsValidBuildTarget(buildTargetByName))
            {
                result = PluginImporterInspector.Compatibility.NotCompatible;
            }
            else
            {
                result = this.m_CompatibleWithPlatform[(int)buildTargetByName];
            }
            return(result);
        }
Beispiel #10
0
        internal void SetCompatibleWithPlatform(string platformName, bool enabled)
        {
            if (this.targets.Length > 1)
            {
                throw new InvalidOperationException("Cannot be used while multiple plugins are selected");
            }
            int num = !enabled ? 0 : 1;
            int buildTargetByName = (int)BuildPipeline.GetBuildTargetByName(platformName);

            if (this.m_CompatibleWithPlatform[buildTargetByName] == num)
            {
                return;
            }
            this.m_CompatibleWithPlatform[buildTargetByName] = num;
            this.m_HasModified = true;
        }
Beispiel #11
0
        internal void SetPlatformCompatibility(string platformName, Compatibility compatibility)
        {
            if (compatibility == Compatibility.Mixed)
            {
                throw new ArgumentException("compatibility value cannot be Mixed");
            }

            var buildTarget = BuildPipeline.GetBuildTargetByName(platformName);

            if (!IsValidBuildTarget(buildTarget) || m_CompatibleWithPlatform[(int)buildTarget] == compatibility)
            {
                return;
            }

            m_CompatibleWithPlatform[(int)buildTarget] = compatibility;
            m_HasModified = true;
        }
Beispiel #12
0
        public override string CalculateFinalPluginPath(string platformName, PluginImporter imp)
        {
            BuildTarget target           = BuildPipeline.GetBuildTargetByName(platformName);
            bool        pluginForWindows = target == BuildTarget.StandaloneWindows || target == BuildTarget.StandaloneWindows64;

#pragma warning disable 612, 618
            bool pluginForOSX = target == BuildTarget.StandaloneOSXIntel || target == BuildTarget.StandaloneOSXIntel64 || target == BuildTarget.StandaloneOSX;
#pragma warning restore 612, 618
            bool pluginForLinux = target == BuildTarget.StandaloneLinux || target == BuildTarget.StandaloneLinux64 || target == BuildTarget.StandaloneLinuxUniversal;

            if (!pluginForLinux && !pluginForOSX && !pluginForWindows)
            {
                throw new Exception(string.Format("Failed to resolve standalone platform, platform string '{0}', resolved target '{1}'",
                                                  platformName, target.ToString()));
            }

            if (pluginForWindows && !IsUsableOnWindows(imp))
            {
                return(string.Empty);
            }
            if (pluginForOSX && !IsUsableOnOSX(imp))
            {
                return(string.Empty);
            }
            if (pluginForLinux && !IsUsableOnLinux(imp))
            {
                return(string.Empty);
            }

            string cpu = imp.GetPlatformData(platformName, "CPU");

            if (string.Compare(cpu, "None", true) == 0)
            {
                return(string.Empty);
            }

            if (!string.IsNullOrEmpty(cpu) && string.Compare(cpu, "AnyCPU", true) != 0)
            {
                return(Path.Combine(cpu, Path.GetFileName(imp.assetPath)));
            }

            // For files this will return filename, for directories, this will return last path component
            return(Path.GetFileName(imp.assetPath));
        }
Beispiel #13
0
 internal Compatibility GetPlatformCompatibility(string platformName) =>
 this.m_CompatibleWithPlatform[(int)BuildPipeline.GetBuildTargetByName(platformName)];
Beispiel #14
0
 internal PluginImporterInspector.Compatibility GetPlatformCompatibility(string platformName)
 {
     return(this.m_CompatibleWithPlatform[(int)BuildPipeline.GetBuildTargetByName(platformName)]);
 }
        public static void SetPlatformSettings(string platformName, string name, string value)
        {
            string buildTargetGroup = BuildPipeline.GetBuildTargetGroupName(BuildPipeline.GetBuildTargetByName(platformName));

            SetPlatformSettings(buildTargetGroup, platformName, name, value);
        }
Beispiel #16
0
 public string GetPlatformData(string platformName, string key)
 {
     return(GetPlatformData(BuildPipeline.GetBuildTargetByName(platformName), key));
 }
Beispiel #17
0
 public bool GetCompatibleWithPlatform(string platformName)
 {
     return(GetCompatibleWithPlatform(BuildPipeline.GetBuildTargetGroupName(BuildPipeline.GetBuildTargetByName(platformName)), platformName));
 }
        public static string GetPlatformSettings(string platformName, string name)
        {
            string buildTargetGroup = BuildPipeline.GetBuildTargetGroupName(BuildPipeline.GetBuildTargetByName(platformName));

            return(GetPlatformSettings(buildTargetGroup, platformName, name));
        }
Beispiel #19
0
 public void SetCompatibleWithPlatform(string platformName, bool enable)
 {
     SetCompatibleWithPlatform(BuildPipeline.GetBuildTargetGroupName(BuildPipeline.GetBuildTargetByName(platformName)), platformName, enable);
 }