示例#1
0
        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();
                }
            }
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
        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));
        }
示例#5
0
        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));
        }
示例#6
0
        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);
                }
            }
        }
示例#7
0
        public async Task GetNearestConanfilePathReturnsNullIfThereIsNoConanfileAsync()
        {
            var dir = FileSystemUtils.CreateTempDirectory();

            Assert.IsNull(await ConanPathHelper.GetNearestConanfilePathAsync(dir));
        }