Ejemplo n.º 1
0
        private string GetPropsFilePath(IVCConfiguration configuration)
        {
            string installPath = _vcProjectService.GetInstallationDirectory(_settingsService, configuration);
            string propFileName;

            if (_settingsService.GetConanGenerator() == ConanGeneratorType.visual_studio)
            {
                propFileName = @"conanbuildinfo.props";
            }
            else
            {
                propFileName = @"conanbuildinfo_multi.props";
            }
            return(Path.Combine(installPath, propFileName));
        }
Ejemplo n.º 2
0
        private void IntegrateIntoConfiguration(IVCConfiguration configuration)
        {
            string absPropFilePath      = GetPropsFilePath(configuration);
            string relativePropFilePath = ConanPathHelper.GetRelativePath(configuration.ProjectDirectory, absPropFilePath);

            configuration.AdditionalDependencies = configuration.AdditionalDependencies.Replace("$(NOINHERIT)", "");

            foreach (IVCPropertySheet sheet in configuration.PropertySheets)
            {
                if (ConanPathHelper.NormalizePath(sheet.PropertySheetFile) == ConanPathHelper.NormalizePath(absPropFilePath))
                {
                    string msg = $"[Conan.VisualStudio] Property sheet '{absPropFilePath}' already added to project {configuration.ProjectName}";
                    Logger.Log(msg);
                    return;
                }
            }
            configuration.AddPropertySheet(relativePropFilePath);
            Logger.Log($"[Conan.VisualStudio] Property sheet '{absPropFilePath}' added to project {configuration.ProjectName}");
            configuration.CollectIntelliSenseInfo();
        }
Ejemplo n.º 3
0
 public string GetInstallationDirectory(ISettingsService settingsService, IVCConfiguration configuration)
 {
     return(GetInstallationDirectoryImpl(settingsService, configuration));
 }
Ejemplo n.º 4
0
        private static ConanConfiguration ExtractConanConfiguration(ISettingsService settingsService, IVCConfiguration configuration)
        {
            string installPath = GetInstallationDirectoryImpl(settingsService, configuration);

            return(new ConanConfiguration
            {
                VSName = configuration.Name,
                Architecture = GetArchitecture(configuration.PlatformName),
                BuildType = GetBuildType(configuration.ConfigurationName),
                CompilerToolset = configuration.Toolset,
                CompilerVersion = VisualStudioVersion.ToString(),
                InstallPath = installPath,
                RuntimeLibrary = configuration.RuntimeLibrary
            });
        }
Ejemplo n.º 5
0
        private static string GetInstallationDirectoryImpl(ISettingsService settingsService, IVCConfiguration configuration)
        {
            string installPath = ".conan";

            if (settingsService != null)
            {
                installPath = configuration.Evaluate(settingsService.GetConanInstallationPath());
                if (!Path.IsPathRooted(installPath))
                {
                    installPath = Path.Combine(configuration.ProjectDirectory, installPath);
                }
                return(installPath);
            }
            return(Path.Combine(configuration.ProjectDirectory, installPath));
        }