private void PreprocessBuild(BuildTarget target)
        {
            Platform platform = PlatformForBuildTarget[target];

            BuildTargetGroup        buildTargetGroup = BuildPipeline.GetBuildTargetGroup(target);
            ScriptingImplementation scriptingBackend = PlayerSettings.GetScriptingBackend(buildTargetGroup);

            if (scriptingBackend == ScriptingImplementation.IL2CPP)
            {
                Action <string> reportError = message => {
                    Debug.LogWarningFormat("FMOD: Error processing static plugins for platform {0}: {1}",
                                           platform.DisplayName, message);
                };

                if (platform.SupportsAdditionalCPP(target))
                {
                    // Ensure we don't have leftover temporary files in the Assets directory.
                    CleanTemporaryFiles();

                    // Generate code to a file outside the Assets directory and use IL2CPP arguments
                    // to include it in the build.
                    Debug.LogFormat("FMOD: Generating static plugin registration code in {0}", RegisterStaticPluginsTempFilePath);
                    CodeGeneration.GenerateStaticPluginRegistration(RegisterStaticPluginsTempFilePath, platform, reportError);
                    UpdateIl2CppArgs();
                }
                else
                {
                    // Generate code to a file within the Assets directory and import it so it's
                    // automatically included in the build.
                    Debug.LogFormat("FMOD: Generating static plugin registration code in {0}", RegisterStaticPluginsAssetFullPath);
                    string filePath = Application.dataPath + RegisterStaticPluginsAssetRelativePath;
                    CodeGeneration.GenerateStaticPluginRegistration(filePath, platform, reportError);
                    AssetDatabase.ImportAsset(RegisterStaticPluginsAssetFullPath);
                }
            }
            else if (platform.StaticPlugins.Count > 0)
            {
                Debug.LogWarningFormat(
                    "FMOD: Platform {0} has {1} static plugins specified, " +
                    "but static plugins are only supported on the IL2CPP scripting backend",
                    platform.DisplayName, platform.StaticPlugins.Count);
            }
        }
Example #2
0
        private void PreprocessStaticPlugins(Platform platform, BuildTarget target)
        {
            // Ensure we don't have leftover temporary changes from a previous build.
            CleanTemporaryFiles();

            BuildTargetGroup        buildTargetGroup = BuildPipeline.GetBuildTargetGroup(target);
            ScriptingImplementation scriptingBackend = PlayerSettings.GetScriptingBackend(buildTargetGroup);

            if (platform.StaticPlugins.Count > 0)
            {
                if (scriptingBackend == ScriptingImplementation.IL2CPP)
                {
                    Action <string> reportError = message => {
                        RuntimeUtils.DebugLogWarningFormat("FMOD: Error processing static plugins for platform {0}: {1}",
                                                           platform.DisplayName, message);
                    };

                    if (!AssetDatabase.IsValidFolder(CacheFolderFull))
                    {
                        RuntimeUtils.DebugLogFormat("Creating {0}", CacheFolderFull);
                        AssetDatabase.CreateFolder(FMODFolderFull, CacheFolderName);
                    }

                    // Generate registration code and import it so it's included in the build.
                    RuntimeUtils.DebugLogFormat("FMOD: Generating static plugin registration code in {0}", RegisterStaticPluginsAssetPathFull);

                    string filePath = Application.dataPath + "/" + RegisterStaticPluginsAssetPathRelative;
                    CodeGeneration.GenerateStaticPluginRegistration(filePath, platform, reportError);
                    AssetDatabase.ImportAsset(RegisterStaticPluginsAssetPathFull);
                }
                else
                {
                    RuntimeUtils.DebugLogWarningFormat(
                        "FMOD: Platform {0} has {1} static plugins specified, " +
                        "but static plugins are only supported on the IL2CPP scripting backend",
                        platform.DisplayName, platform.StaticPlugins.Count);
                }
            }
        }