diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index c9a692c3e71..223be8d2153 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -652,6 +652,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
m_projectExplorerSettings.buildBeforeRun = s->value("ProjectExplorer/Settings/BuildBeforeRun", true).toBool();
m_projectExplorerSettings.saveBeforeBuild = s->value("ProjectExplorer/Settings/SaveBeforeBuild", false).toBool();
m_projectExplorerSettings.showCompilerOutput = s->value("ProjectExplorer/Settings/ShowCompilerOutput", false).toBool();
+ m_projectExplorerSettings.useJom = s->value("ProjectExplorer/Settings/UseJom", true).toBool();
}
connect(m_sessionManagerAction, SIGNAL(triggered()), this, SLOT(showSessionManager()));
@@ -892,6 +893,7 @@ void ProjectExplorerPlugin::savePersistentSettings()
s->setValue("ProjectExplorer/Settings/BuildBeforeRun", m_projectExplorerSettings.buildBeforeRun);
s->setValue("ProjectExplorer/Settings/SaveBeforeBuild", m_projectExplorerSettings.saveBeforeBuild);
s->setValue("ProjectExplorer/Settings/ShowCompilerOutput", m_projectExplorerSettings.showCompilerOutput);
+ s->setValue("ProjectExplorer/Settings/UseJom", m_projectExplorerSettings.useJom);
}
}
diff --git a/src/plugins/projectexplorer/projectexplorer.h b/src/plugins/projectexplorer/projectexplorer.h
index c3251c0e37c..da163b19c73 100644
--- a/src/plugins/projectexplorer/projectexplorer.h
+++ b/src/plugins/projectexplorer/projectexplorer.h
@@ -80,6 +80,7 @@ struct ProjectExplorerSettings
bool buildBeforeRun;
bool saveBeforeBuild;
bool showCompilerOutput;
+ bool useJom;
};
} // namespace Internal
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
index 38b0964a898..49ff412b26b 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
@@ -73,6 +73,11 @@ QWidget *ProjectExplorerSettingsPage::createPage(QWidget *parent)
m_ui.buildProjectBeforeRunCheckBox->setChecked(pes.buildBeforeRun);
m_ui.saveAllFilesCheckBox->setChecked(pes.saveBeforeBuild);
m_ui.showCompileOutputCheckBox->setChecked(pes.showCompilerOutput);
+#ifdef Q_OS_WIN
+ m_ui.jomCheckbox->setChecked(pes.useJom);
+#else
+ m_ui.jomCheckbox->setVisible(false);
+#endif
return w;
}
@@ -82,6 +87,9 @@ void ProjectExplorerSettingsPage::apply()
pes.buildBeforeRun = m_ui.buildProjectBeforeRunCheckBox->isChecked();
pes.saveBeforeBuild = m_ui.saveAllFilesCheckBox->isChecked();
pes.showCompilerOutput = m_ui.showCompileOutputCheckBox->isChecked();
+#ifdef Q_OS_WIN
+ pes.useJom = m_ui.jomCheckbox->isChecked();
+#endif
ProjectExplorerPlugin::instance()->setProjectExplorerSettings(pes);
}
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.ui b/src/plugins/projectexplorer/projectexplorersettingspage.ui
index b56006ba6bb..c1028e47123 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.ui
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.ui
@@ -7,7 +7,7 @@
0
0
296
- 152
+ 249
@@ -38,6 +38,16 @@
+ -
+
+
+
+
+
+ Use jom instead of nmake
+
+
+
diff --git a/src/plugins/projectexplorer/toolchain.cpp b/src/plugins/projectexplorer/toolchain.cpp
index 0ba04e80f8a..55fc233c6f0 100644
--- a/src/plugins/projectexplorer/toolchain.cpp
+++ b/src/plugins/projectexplorer/toolchain.cpp
@@ -374,6 +374,14 @@ void MSVCToolChain::addToEnvironment(ProjectExplorer::Environment &env)
QString MSVCToolChain::makeCommand() const
{
+ if (ProjectExplorerPlugin::instance()->projectExplorerSettings().useJom) {
+ // We want jom! Try to find it.
+ QString jom = QCoreApplication::applicationDirPath() + QLatin1String("/jom.exe");
+ if (QFileInfo(jom).exists())
+ return jom;
+ else
+ return "jom.exe";
+ }
return "nmake.exe";
}