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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }