コード例 #1
0
 protected function writePropertyGroup(DOMElement $parent, Configuration $configuration)
 {
     $element = XmlDom::createElement($parent, 'PropertyGroup', null, ['Condition' => $this->buildCondition($configuration)]);
     XmlDom::createElement($element, 'LinkIncremental', $configuration->getDebug() ? 'true' : 'false');
     $this->writePathList($element, 'IncludePath', 'include', $configuration);
     $this->writePathList($element, 'LibraryPath', 'library', $configuration);
     $this->writePathList($element, 'ExecutablePath', 'executable', $configuration);
     $this->writePathList($element, 'SourcePath', 'source', $configuration);
     $this->writePathList($element, 'ReferencePath', 'reference', $configuration);
     $this->writePathList($element, 'ExcludePath', 'exclude', $configuration);
     $outputExt = $configuration->getParsedExtension();
     $outputExtWithDot = '.' . $outputExt;
     $outputPath = $this->variableParser->parse($configuration->getOutputPath()) . $outputExt;
     $outputDirectory = dirname($outputPath);
     $intDir = $configuration->getIntermediateDirectory();
     if (!$intDir) {
         $intDir = sprintf('intermediate\\%s', $configuration->getName());
     } else {
         $intDir = $this->variableParser->parse($intDir);
     }
     FileSystem::createDirectory($outputDirectory);
     FileSystem::createDirectory($intDir);
     XmlDom::createElement($element, 'OutDir', FileSystem::getRelativePath($this->config->getProjectsDirectory() . '/vs2010', $outputDirectory . '/bla/bla2/') . '\\');
     XmlDom::createElement($element, 'IntDir', FileSystem::getRelativePath($this->config->getProjectsDirectory(), $intDir) . '\\');
     XmlDom::createElement($element, 'TargetName', basename($outputPath, $outputExtWithDot));
     XmlDom::createElement($element, 'TargetExt', $outputExt);
 }