public async Task IntegrateAsync(VCProject 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()) { string relativePropFilePath = GetPropsFilePath(vcProject.ActiveConfiguration); vcProject.ActiveConfiguration.AddPropertySheet(relativePropFilePath); vcProject.ActiveConfiguration.CollectIntelliSenseInfo(); } else { foreach (VCConfiguration configuration in vcProject.Configurations) { string relativePropFilePath = GetPropsFilePath(configuration); configuration.AddPropertySheet(relativePropFilePath); configuration.CollectIntelliSenseInfo(); } } }
public async Task GetNearestConanfilePathWorksForDiskRootAsync() { var dir = FileSystemUtils.CreateTempDirectory(); var root = Path.GetPathRoot(dir); FileSystemUtils.CreateTempFile(root, "conanfile.txt"); Assert.AreEqual(root, await ConanPathHelper.GetNearestConanfilePathAsync(dir)); Assert.AreEqual(root, await ConanPathHelper.GetNearestConanfilePathAsync(root)); }
public async Task GetNearestConanfilePathWorksForDiskRootAsync() { var root = FileSystemUtils.CreateTempDirectory(); var dir = Directory.CreateDirectory(Path.Combine(root, Path.GetRandomFileName())).FullName; FileSystemUtils.CreateTempFile(root, "conanfile.txt"); Assert.AreEqual(Path.Combine(root, "conanfile.txt"), await ConanPathHelper.GetNearestConanfilePathAsync(dir)); Assert.AreEqual(Path.Combine(root, "conanfile.txt"), await ConanPathHelper.GetNearestConanfilePathAsync(root)); }
public async Task GetNearestConanfilePathReturnsParentPathIfValidAsync() { var dir = FileSystemUtils.CreateTempDirectory(); var subdir = Path.Combine(dir, "test"); Directory.CreateDirectory(subdir); FileSystemUtils.CreateTempFile(dir, "conanfile.txt"); Assert.AreEqual(dir, await ConanPathHelper.GetNearestConanfilePathAsync(subdir)); }
public async Task GetNearestConanfilePathReturnsCurrentPathIfValidAsync() { var dir = FileSystemUtils.CreateTempDirectory(); var conanfile = FileSystemUtils.CreateTempFile(dir, "conanfile.txt"); Assert.AreEqual(dir, await ConanPathHelper.GetNearestConanfilePathAsync(dir)); File.Delete(conanfile); FileSystemUtils.CreateTempFile(dir, "conanfile.py"); Assert.AreEqual(dir, await ConanPathHelper.GetNearestConanfilePathAsync(dir)); }
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 GetNearestConanfilePathReturnsNullIfThereIsNoConanfileAsync() { var dir = FileSystemUtils.CreateTempDirectory(); Assert.IsNull(await ConanPathHelper.GetNearestConanfilePathAsync(dir)); }