private List <PackageData> GetPackagesFromPackagesLockJson() { if (!myPackagesLockPath.ExistsFile) { myLogger.Verbose("packages-lock.json does not exist"); return(null); } if (myManifestPath.ExistsFile && ShouldSkipPackagesLock()) { myLogger.Info("packages-lock.json is out of date. Skipping"); return(null); } myLogger.Verbose("Getting packages from packages-lock.json"); var appPath = myUnityVersion.GetActualAppPathForSolution(); var builtInPackagesFolder = UnityInstallationFinder.GetBuiltInPackagesFolder(appPath); return(myLogger.CatchSilent(() => { var packagesLockJson = PackagesLockJson.FromJson(myPackagesLockPath.ReadAllText2().Text); var packages = new List <PackageData>(); foreach (var(id, details) in packagesLockJson.Dependencies) { packages.Add(GetPackageData(id, details, builtInPackagesFolder)); } return packages; })); }
public static FileSystemPath GetCgIncludeFolderPath(UnityVersion unityVersion) { var path = unityVersion.GetActualAppPathForSolution(); if (path.IsEmpty) { return(FileSystemPath.Empty); } var contentPath = UnityInstallationFinder.GetApplicationContentsPath(path); return(contentPath.Combine("CGIncludes")); }
private static void NotifyFrontend(UnityHost host, UnityVersion unityVersion) { var version = unityVersion.GetActualVersionForSolution(); var applicationPath = unityVersion.GetActualAppPathForSolution(); if (PlatformUtil.RuntimePlatform == PlatformUtil.Platform.MacOsX && !applicationPath.ExistsDirectory || PlatformUtil.RuntimePlatform != PlatformUtil.Platform.MacOsX && !applicationPath.ExistsFile) { var info = UnityInstallationFinder.GetApplicationInfo(version); if (info == null) { return; } applicationPath = info.Path; version = info.Version; } host.PerformModelAction(rd => { // ApplicationPath may be already set via UnityEditorProtocol, which will obviously be correct if (!rd.ApplicationPath.HasValue()) { rd.ApplicationPath.SetValue(applicationPath.FullPath); } if (!rd.ApplicationContentsPath.HasValue()) { var contentsPath = UnityInstallationFinder.GetApplicationContentsPath(applicationPath); if (!contentsPath.IsEmpty) { rd.ApplicationContentsPath.SetValue(contentsPath.FullPath); } } if (!rd.ApplicationVersion.HasValue() && version != null) { rd.ApplicationVersion.SetValue(UnityVersion.VersionToString(version)); } }); }
private void NotifyFrontend(UnityHost host, UnityVersion unityVersion) { var version = unityVersion.GetActualVersionForSolution(); var applicationPath = unityVersion.GetActualAppPathForSolution(); if (PlatformUtil.RuntimePlatform == PlatformUtil.Platform.MacOsX && !applicationPath.ExistsDirectory || PlatformUtil.RuntimePlatform != PlatformUtil.Platform.MacOsX && !applicationPath.ExistsFile) { var info = UnityInstallationFinder.GetApplicationInfo(version); if (info == null) { return; } applicationPath = info.Path; version = info.Version; } host.PerformModelAction(rd => { // if model is there, then ApplicationPath was already set via UnityEditorProtocol, it would be more correct than any counted value if (myUnityEditorProtocol.UnityModel.Value != null) { return; } rd.ApplicationPath.SetValue(applicationPath.FullPath); var contentsPath = UnityInstallationFinder.GetApplicationContentsPath(applicationPath); if (!contentsPath.IsEmpty) { rd.ApplicationContentsPath.SetValue(contentsPath.FullPath); } if (version != null) { rd.ApplicationVersion.SetValue(UnityVersion.VersionToString(version)); } }); }