From 73f4c47cee67a2c39c26bb47d3ef4636dc5a3194 Mon Sep 17 00:00:00 2001 From: SSE4 Date: Fri, 5 Jul 2019 06:36:15 -0700 Subject: [PATCH 1/4] - allow to customize installation directory Signed-off-by: SSE4 --- Conan.VisualStudio/ConanOptionsPage.cs | 10 ++++++++++ Conan.VisualStudio/Services/ConanService.cs | 2 +- Conan.VisualStudio/Services/ISettingsService.cs | 4 ++++ Conan.VisualStudio/Services/VcProjectService.cs | 8 +++++--- .../Services/VisualStudioSettingService.cs | 5 +++++ 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Conan.VisualStudio/ConanOptionsPage.cs b/Conan.VisualStudio/ConanOptionsPage.cs index 44097c7e..15b01b70 100644 --- a/Conan.VisualStudio/ConanOptionsPage.cs +++ b/Conan.VisualStudio/ConanOptionsPage.cs @@ -7,6 +7,7 @@ namespace Conan.VisualStudio public class ConanOptionsPage : DialogPage { private string _conanExecutablePath; + private string _conanInstallationPath; private bool? _conanInstallOnlyActiveConfiguration; private ConanGeneratorType? _conanGenerator; private bool? _conanInstallAutomatically; @@ -22,6 +23,15 @@ public string ConanExecutablePath set => _conanExecutablePath = value; } + [Category("Conan")] + [DisplayName("Conan installation directory")] + [Description(@"Path to the conan installation directory, may use macro like $(OutDir) or $(ProjectDir). Absolute or relative to the project directory.")] + public string ConanInstallationPath + { + get => _conanInstallationPath ?? (_conanInstallationPath = "$(OutDir).conan"); + set => _conanInstallationPath = value; + } + [Category("Conan")] [DisplayName("Install only active configuration")] [Description(@"Install only active configuration, or all configurations")] diff --git a/Conan.VisualStudio/Services/ConanService.cs b/Conan.VisualStudio/Services/ConanService.cs index a5901704..0fc53f9d 100644 --- a/Conan.VisualStudio/Services/ConanService.cs +++ b/Conan.VisualStudio/Services/ConanService.cs @@ -12,7 +12,7 @@ namespace Conan.VisualStudio.Services internal class ConanService : IConanService { private readonly ISettingsService _settingsService; - private readonly Core.IErrorListService _errorListService; + private readonly IErrorListService _errorListService; private readonly IVcProjectService _vcProjectService; public ConanService(ISettingsService settingsService, Core.IErrorListService errorListService, IVcProjectService vcProjectService) diff --git a/Conan.VisualStudio/Services/ISettingsService.cs b/Conan.VisualStudio/Services/ISettingsService.cs index 76bd176c..debfa62d 100644 --- a/Conan.VisualStudio/Services/ISettingsService.cs +++ b/Conan.VisualStudio/Services/ISettingsService.cs @@ -8,6 +8,10 @@ public interface ISettingsService /// Executable path. May be null if Conan not found. string GetConanExecutablePath(); + /// Returns Conan installation path - to be used as target for the "conan install" command. + /// Installation path. Might contain visual studio macro definitions (like $(OutDir)). Relative path is evaluated against project directory + string GetConanInstallationPath(); + /// Returns True if install only active configuration, as defined in the project options. /// Boolean flag describing conan installation mode bool GetConanInstallOnlyActiveConfiguration(); diff --git a/Conan.VisualStudio/Services/VcProjectService.cs b/Conan.VisualStudio/Services/VcProjectService.cs index 0fb443f6..e316ffa5 100644 --- a/Conan.VisualStudio/Services/VcProjectService.cs +++ b/Conan.VisualStudio/Services/VcProjectService.cs @@ -101,11 +101,13 @@ internal static string GetArchitecture(string platformName) private static string GetInstallationDirectoryImpl(ISettingsService settingsService, VCConfiguration configuration) { string installPath = ".conan"; - if (settingsService != null && settingsService.GetConanGenerator() == ConanGeneratorType.visual_studio) + if (settingsService != null) { IVCRulePropertyStorage generalSettings = configuration.Rules.Item("ConfigurationGeneral"); - string outputDirectory = generalSettings.GetEvaluatedPropertyValue("OutDir"); - return Path.Combine(outputDirectory, installPath); + installPath = configuration.Evaluate(settingsService.GetConanInstallationPath()); + if (!Path.IsPathRooted(installPath)) + installPath = Path.Combine(configuration.project.ProjectDirectory, installPath); + return installPath; } return Path.Combine(configuration.project.ProjectDirectory, installPath); } diff --git a/Conan.VisualStudio/Services/VisualStudioSettingService.cs b/Conan.VisualStudio/Services/VisualStudioSettingService.cs index 5486a119..d615bc87 100644 --- a/Conan.VisualStudio/Services/VisualStudioSettingService.cs +++ b/Conan.VisualStudio/Services/VisualStudioSettingService.cs @@ -26,6 +26,11 @@ public string GetConanExecutablePath() return GetConanPage().ConanExecutablePath; } + public string GetConanInstallationPath() + { + return GetConanPage().ConanInstallationPath; + } + public bool GetConanInstallOnlyActiveConfiguration() { return GetConanPage().ConanInstallOnlyActiveConfiguration; From 4908b8bb741a33db4f3fa35dbd03161c691067fc Mon Sep 17 00:00:00 2001 From: "Javier G. Sogo" Date: Mon, 15 Jul 2019 20:45:18 +0200 Subject: [PATCH 2/4] Log the full path to the file added to project --- Conan.VisualStudio/Services/ConanService.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Conan.VisualStudio/Services/ConanService.cs b/Conan.VisualStudio/Services/ConanService.cs index 0fc53f9d..9947f34d 100644 --- a/Conan.VisualStudio/Services/ConanService.cs +++ b/Conan.VisualStudio/Services/ConanService.cs @@ -53,9 +53,14 @@ private void IntegrateIntoConfiguration(VCConfiguration configuration) foreach (VCPropertySheet sheet in configuration.PropertySheets) { if (ConanPathHelper.NormalizePath(sheet.PropertySheetFile) == ConanPathHelper.NormalizePath(absPropFilePath)) + { + string msg = $"[Conan.VisualStudio] Property sheet '{absPropFilePath}' already added to project {configuration.project.Name}"; + Logger.Log(msg); return; + } } configuration.AddPropertySheet(relativePropFilePath); + Logger.Log($"[Conan.VisualStudio] Property sheet '{absPropFilePath}' added to project {configuration.project.Name}"); configuration.CollectIntelliSenseInfo(); } From b9685715748c5449922d045e81d1a0780ca277ea Mon Sep 17 00:00:00 2001 From: "Javier G. Sogo" Date: Tue, 16 Jul 2019 11:14:28 +0200 Subject: [PATCH 3/4] add an entry to the docs for the extension documentation --- docs/README.md | 8 ++++++++ docs/images/conan-vs-extension-options.png | Bin 0 -> 45149 bytes 2 files changed, 8 insertions(+) create mode 100644 docs/images/conan-vs-extension-options.png diff --git a/docs/README.md b/docs/README.md index 57abf329..5b433250 100644 --- a/docs/README.md +++ b/docs/README.md @@ -63,3 +63,11 @@ It is important to take into account: of the Configuration and the Platform. * For Conan profiles, the value declared will be used verbatim for the `--profile` argument in the `conan install` command, and rules related to profile lookup applies. + + +## Extension configuration + +There are several options available to the user to configure the extension, all of them can +be accessed through the 'Tools' > 'Conan Package Management' > 'Options...' menu: + +![Conan Extension Options](images/conan-vs-extension-options.png) diff --git a/docs/images/conan-vs-extension-options.png b/docs/images/conan-vs-extension-options.png new file mode 100644 index 0000000000000000000000000000000000000000..97511a4713378aaa4761efc7d068021fde70ebbf GIT binary patch literal 45149 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 DMt7t^ literal 0 HcmV?d00001 From 0e9485f98931205eac644564976c9bb9325bfdb4 Mon Sep 17 00:00:00 2001 From: "Javier G. Sogo" Date: Tue, 16 Jul 2019 11:21:42 +0200 Subject: [PATCH 4/4] document the install path --- docs/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/README.md b/docs/README.md index 5b433250..70dab2fb 100644 --- a/docs/README.md +++ b/docs/README.md @@ -71,3 +71,8 @@ There are several options available to the user to configure the extension, all be accessed through the 'Tools' > 'Conan Package Management' > 'Options...' menu: ![Conan Extension Options](images/conan-vs-extension-options.png) + + * **Conan installation directory**: path where the `conanbuildinfo.props` file will be + generated. This path is common for all the configurations so making use of Visual Studio + dynamic directories like `$(Platform)` or `$(Configuration)` will be needed to avoid + overriding the file for different configurations.