| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using UnityEditor;
- using UnityEngine;
- namespace HybridCLR.Editor
- {
- public static partial class BuildConfig
- {
- #if !UNITY_IOS
- [InitializeOnLoadMethod]
- private static void Setup()
- {
- ///
- /// unity允许使用UNITY_IL2CPP_PATH环境变量指定il2cpp的位置,因此我们不再直接修改安装位置的il2cpp,
- /// 而是在本地目录
- ///
- var installerController = new Installer.InstallerController();
- var localIl2cppDir = LocalIl2CppDir;
- if (!installerController.HasInstalledHybridCLR())
- {
- if (installerController.CheckValidIl2CppInstallDirectory(installerController.Il2CppBranch, installerController.Il2CppInstallDirectory) == Installer.InstallErrorCode.Ok)
- {
- installerController.InitHybridCLR(installerController.Il2CppBranch, installerController.Il2CppInstallDirectory);
- }
- if (!installerController.HasInstalledHybridCLR())
- {
- Debug.LogError($"未安装本地il2cpp。请在菜单 HybridCLR/Installer 中执行安装");
- }
- }
- Environment.SetEnvironmentVariable("UNITY_IL2CPP_PATH", localIl2cppDir);
- }
- #endif
- public static string ProjectDir => Directory.GetParent(Application.dataPath).ToString();
- public static string ScriptingAssembliesJsonFile { get; } = "ScriptingAssemblies.json";
- public static string HybridCLRBuildCacheDir => Application.dataPath + "/Bundles";
- public static string HotFixDllsOutputDir => $"{HybridCLRDataDir}/HotFixDlls";
- public static string AssetBundleOutputDir => $"{HybridCLRBuildCacheDir}/AssetBundleOutput";
- public static string AssetBundleSourceDataTempDir => $"{HybridCLRBuildCacheDir}/AssetBundleSourceData";
- public static string HybridCLRDataDir { get; } = $"{ProjectDir}/HybridCLRData";
- public static string AssembliesPostIl2CppStripDir => $"{HybridCLRDataDir}/AssembliesPostIl2CppStrip";
- public static string LocalIl2CppDir => $"{HybridCLRDataDir}/LocalIl2CppData/il2cpp";
- public static string MethodBridgeCppDir => $"{LocalIl2CppDir}/libil2cpp/hybridclr/interpreter";
- public static string Il2CppBuildCacheDir { get; } = $"{ProjectDir}/Library/Il2cppBuildCache";
- public static string GetHotFixDllsOutputDirByTarget(BuildTarget target)
- {
- return $"{HotFixDllsOutputDir}/{target}";
- }
- public static string GetAssembliesPostIl2CppStripDir(BuildTarget target)
- {
- return $"{AssembliesPostIl2CppStripDir}/{target}";
- }
- public static string GetAssetBundleOutputDirByTarget(BuildTarget target)
- {
- return $"{AssetBundleOutputDir}/{target}";
- }
- public static string GetAssetBundleTempDirByTarget(BuildTarget target)
- {
- return $"{AssetBundleSourceDataTempDir}/{target}";
- }
- }
- }
|