Example #1
0
        private static void ResolveInternalLibs(AN_AndroidBuildRequirements requirements)
        {
            List <string> libsToAdd    = new List <string>();
            List <string> libsToRemove = new List <string>();


            List <string> internalLibs = SA_AssetDatabase.FindAssetsWithExtentions(AN_Settings.ANDROID_INTERNAL_FOLDER);

            foreach (var lib in internalLibs)
            {
                string libName = SA_AssetDatabase.GetFileName(lib);
                if (!requirements.HasInternalLib(libName))
                {
                    libsToRemove.Add(libName);
                }
            }

            foreach (var lib in requirements.InternalLibs)
            {
                string libPath = AN_Settings.ANDROID_INTERNAL_FOLDER + lib;
                if (!SA_AssetDatabase.IsFileExists(libPath))
                {
                    libsToAdd.Add(lib);
                }
            }

            SA_PluginsEditor.UninstallLibs(AN_Settings.ANDROID_INTERNAL_FOLDER, libsToRemove);
            SA_PluginsEditor.InstallLibs(AN_Settings.ANDROID_INTERNAL_FOLDER_DISABLED, AN_Settings.ANDROID_INTERNAL_FOLDER, libsToAdd);
        }
Example #2
0
        private static void ResolveBinaryLibs(AN_AndroidBuildRequirements requirements)
        {
            if (AN_Settings.Instance.UseUnityJarResolver)
            {
                AN_Dependencies.Resolve(requirements.BinaryDependencies);
                SA_AssetDatabase.DeleteAsset(AN_Settings.ANDROID_MAVEN_FOLDER);
            }
            else
            {
                AN_Dependencies.Resolve(new List <AN_BinaryDependency>());


                List <string> repositorysToAdd    = new List <string>();
                List <string> repositorysToRemove = new List <string>();

                List <string> mavenLibs = SA_AssetDatabase.FindAssetsWithExtentions(AN_Settings.ANDROID_MAVEN_FOLDER);
                foreach (var lib in mavenLibs)
                {
                    //we are only interested in folder, we also assume all folders are located inside a root folder
                    if (!SA_AssetDatabase.IsValidFolder(lib))
                    {
                        continue;
                    }

                    string libName = SA_AssetDatabase.GetFileName(lib);
                    if (!requirements.HasBinaryDependency(libName))
                    {
                        repositorysToRemove.Add(libName);
                    }
                }

                foreach (var dep in requirements.BinaryDependencies)
                {
                    string libPath = AN_Settings.ANDROID_MAVEN_FOLDER + dep.GetLocalRepositoryName();
                    if (!SA_AssetDatabase.IsDirectoryExists(libPath))
                    {
                        string localRepositoryName = dep.GetLocalRepositoryName();
                        if (!repositorysToAdd.Contains(localRepositoryName))
                        {
                            repositorysToAdd.Add(localRepositoryName);
                        }
                    }
                }

                SA_PluginsEditor.UninstallLibs(AN_Settings.ANDROID_MAVEN_FOLDER, repositorysToRemove);

                foreach (var lib in repositorysToAdd)
                {
                    string source      = AN_Settings.ANDROID_MAVEN_FOLDER_DISABLED + lib;
                    string destination = AN_Settings.ANDROID_MAVEN_FOLDER + lib;
                    SA_PluginsEditor.InstallLibFolder(source, destination);
                }
            }
        }