protected function writeItemGroupProjectConfig(DOMElement $parent)
 {
     /** @var DOMElement $element */
     $element = $parent->appendChild($this->dom->createElement('ItemGroup'));
     $element->setAttribute('Label', 'ProjectConfigurations');
     foreach ($this->project->getConfigurations() as $configuration) {
         $this->variableParser->push('ide.config', $configuration);
         $this->writeProjectConfig($element, $configuration);
         $this->variableParser->pop('ide.config');
     }
 }
 private function buildFileListFromProject(ArrayObject $result, ConfigInterface $config, Project $project)
 {
     if ($this->shouldCompileDependencies) {
         foreach ($project->getConfigurations() as $configuration) {
             $this->buildFileListFromConfiguration($result, $configuration);
         }
     }
     if (!$this->shouldCompileProjects && $this->buildDepth === 0) {
         return;
     }
     $result[$config->getVendor() . '/' . $config->getName()] = $project;
 }
 protected function getDependencies(Project $project)
 {
     $result = [];
     foreach ($project->getConfigurations() as $configuration) {
         foreach ($configuration->getDependencies() as $dependency) {
             $dependentProject = $this->config->findProject($dependency->getName());
             if ($dependentProject && !in_array($dependentProject, $result)) {
                 $result[] = $dependentProject;
             }
         }
     }
     return $result;
 }