protected void resolveProjectSettings() {
        _project.setName(_projectname);
        if (("".equals(_nmakefilesettings)) || (_nmakefilesettings == null)) {
            _project.setNMakefileSettings(null);
        } else {
            if (_project.getNMakefileSettings() == null) {
                _project.setNMakefileSettings(new NMakefileSettings(_project, _nmakefilesettings));
            } else {
                _project.getNMakefileSettings().setName(_nmakefilesettings);
            }
        }

        if (("".equals(_gnumakefilesettings)) || (_gnumakefilesettings == null)) {
            _project.setGNUMakefileSettings(null);
        } else {
            if (_project.getGNUMakefileSettings() == null) {
                _project.setGNUMakefileSettings(new GNUMakefileSettings(_project, _gnumakefilesettings));
            } else {
                _project.getGNUMakefileSettings().setName(_gnumakefilesettings);
            }
        }

        _project.setCPPOutputDir(_outputdir);
        _project.setTargetName(_targetname);
        _project.setTargetType(_targettype.toString());

        Iterator it = _classes.values().iterator();
        while (it.hasNext()) {
            ProjectClass projectclass = (ProjectClass) it.next();
            ProjectSettingsAdapter settings = projectclass.getProjectSettingsAdapter();
            resolvePeerGenSettings(projectclass, settings);
            resolveProxyGenSettings(projectclass, settings);
            //TODO: collapse duplicates

        }
    }