protected internal override async Task MenuItemCallback() { var vcProject = _vcProjectService.GetActiveProject(); if (vcProject == null) { _dialogService.ShowPluginError("A C++ project with a conan file must be selected."); return; } if (!_dialogService.ShowOkCancel($"Process conanbuild.txt for '{vcProject.Name}'?\n")) { return; } var conanPath = _settingsService.GetConanExecutablePath(); if (conanPath == null) { _dialogService.ShowPluginError( "Conan executable path is not set and Conan executable wasn't found automatically. " + "Please set it up in the Tools → Settings → Conan menu."); return; } var conan = new ConanRunner(conanPath); var project = await _vcProjectService.ExtractConanProject(vcProject); await InstallDependencies(conan, project); }
protected internal override async Task MenuItemCallback() { var project = _vcProjectService.GetActiveProject(); var projectDirectory = project.ProjectDirectory; var conanfileDirectory = await ConanPathHelper.GetNearestConanfilePath(projectDirectory); var propFilePath = Path.Combine(conanfileDirectory, @"conan\conanbuildinfo_multi.props"); var relativePropFilePath = ConanPathHelper.GetRelativePath(projectDirectory, propFilePath); await _vcProjectService.AddPropsImport(project.ProjectFile, relativePropFilePath); }
protected internal override async Task MenuItemCallbackAsync() { _errorListService.Clear(); var vcProject = _vcProjectService.GetActiveProject(); if (vcProject == null) { _errorListService.WriteError("A C++ project with a conan file must be selected."); return; } await _conanService.InstallAsync(vcProject); await _conanService.IntegrateAsync(vcProject); }