From ac3e37fc6ea8d07913ece7ec74053221e07509cb Mon Sep 17 00:00:00 2001 From: dt Date: Wed, 12 Aug 2009 15:20:36 +0200 Subject: [PATCH] Add explicit support to use jom instead of nmake (which does not support -j) jom can be found at http://qt.gitorious.org/qt-labs/jom Reviewed-by: Daniel Molkentin --- src/plugins/projectexplorer/projectexplorer.cpp | 2 ++ src/plugins/projectexplorer/projectexplorer.h | 1 + .../projectexplorer/projectexplorersettingspage.cpp | 8 ++++++++ .../projectexplorer/projectexplorersettingspage.ui | 12 +++++++++++- src/plugins/projectexplorer/toolchain.cpp | 8 ++++++++ 5 files changed, 30 insertions(+), 1 deletion(-) 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"; }