private function buildDefineList(Configuration $configuration) { $configType = $configuration->getProject()->getType(); $definitions = $configuration->getDefinitions(); // TODO: This is a quick implementation for the proof of concept. We should properly implement this. $this->registerDef($definitions, 'WIN32'); if ($configType === 'application' || $configType === 'dynamic-library') { $this->registerDef($definitions, '_WINDOWS'); } if ($configType === 'application') { $this->registerDef($definitions, '_MBCS'); } if ($configuration->getDebug()) { $this->registerDef($definitions, '_DEBUG'); } else { $this->registerDef($definitions, 'NDEBUG'); } if ($configuration->getProject()->getType() === 'static-library') { $this->registerDef($definitions, '_LIB'); } if ($configuration->getProject()->getType() === 'dynamic-library') { $this->registerDef($definitions, '_USRDLL'); $this->registerDef($definitions, 'DLLTEST_EXPORTS'); $this->registerDef($definitions, '_WINDLL'); } $this->registerDef($definitions, 'UNICODE'); $this->registerDef($definitions, '_UNICODE'); $result = []; foreach ($definitions as $definition) { $result[] = '/D "' . $definition . '"'; } return $result; }
protected function writePreprocessorDefinitions(DOMElement $parent, Configuration $configuration) { $definitions = array_merge($this->project->getDefinitions(), $configuration->getDefinitions()); if ($configuration->getDebug()) { $definitions[] = '_DEBUG'; } else { $definitions[] = 'NDEBUG'; } $definitions[] = '%(PreprocessorDefinitions)'; $uniqueDefinitions = array_unique($definitions); XmlDom::createElement($parent, 'PreprocessorDefinitions', implode(';', $uniqueDefinitions)); }