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); } }
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); } } }