public ConanProject ExtractConanProject(IVCProject vcProject, ISettingsService settingsService) { var projectPath = ConanPathHelper.GetNearestConanfilePath(vcProject.ProjectDirectory); // TODO: Instead of nearest, use the one added to the project (be explicit) if (projectPath == null) { return(null); } if (vcProject.ActiveConfiguration == null) // project unloaded { return(null); } string projectConanConfig = ConanPathHelper.GetNearestConanConfig(vcProject.ProjectDirectory); var project = new ConanProject { Path = projectPath, ConfigFile = projectConanConfig }; if (settingsService != null && settingsService.GetConanInstallOnlyActiveConfiguration()) { project.Configurations.Add(ExtractConanConfiguration(settingsService, vcProject.ActiveConfiguration)); } else { foreach (IVCConfiguration configuration in vcProject.Configurations) { project.Configurations.Add(ExtractConanConfiguration(settingsService, configuration)); } } return(project); }
public async Task <bool> InstallAsync(IVCProject vcProject) { var conanPath = _settingsService.GetConanExecutablePath(); if (conanPath == null || conanPath == "") { _errorListService.WriteError( "Conan executable path is not set and Conan executable wasn't found automatically. " + "Please set it up in the Tools → Settings → Conan menu."); return(false); } var project = await _vcProjectService.ExtractConanProjectAsync(vcProject, _settingsService); if (project == null) { _errorListService.WriteError("Unable to extract conan project!"); return(false); } var conan = new ConanRunner(conanPath); return(await InstallDependenciesAsync(conan, project)); }
public async Task IntegrateAsync(IVCProject vcProject) { var projectDirectory = vcProject.ProjectDirectory; var conanfileDirectory = await ConanPathHelper.GetNearestConanfilePathAsync(projectDirectory); if (conanfileDirectory == null) { _errorListService.WriteError("unable to locate conanfile directory!"); return; } if (_settingsService.GetConanInstallOnlyActiveConfiguration()) { IntegrateIntoConfiguration(vcProject.ActiveConfiguration); } else { foreach (IVCConfiguration configuration in vcProject.Configurations) { IntegrateIntoConfiguration(configuration); } } }
public async Task <ConanProject> ExtractConanProjectAsync(IVCProject vcProject, ISettingsService settingsService) => await Task.Run(() => { return(ExtractConanProject(vcProject, settingsService)); });