aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp28
1 files changed, 22 insertions, 6 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index a868427ffb3..1461c75b075 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -92,11 +92,16 @@ QString CMakeManager::cmakeExecutable() const
return m_settingsPage->cmakeExecutable();
}
+bool CMakeManager::hasCodeBlocksMsvcGenerator() const
+{
+ return m_settingsPage->hasCodeBlocksMsvcGenerator();
+}
+
// TODO need to refactor this out
// we probably want the process instead of this function
// cmakeproject then could even run the cmake process in the background, adding the files afterwards
// sounds like a plan
-QProcess *CMakeManager::createXmlFile(const QStringList &arguments, const QString &sourceDirectory, const QDir &buildDirectory, const ProjectExplorer::Environment &env)
+QProcess *CMakeManager::createXmlFile(const QStringList &arguments, const QString &sourceDirectory, const QDir &buildDirectory, const ProjectExplorer::Environment &env, const QString &generator)
{
// We create a cbp file, only if we didn't find a cbp file in the base directory
// Yet that can still override cbp files in subdirectories
@@ -115,11 +120,6 @@ QProcess *CMakeManager::createXmlFile(const QStringList &arguments, const QStrin
cmake->setProcessChannelMode(QProcess::MergedChannels);
cmake->setEnvironment(env.toStringList());
-#ifdef Q_OS_WIN
- const QString generator = QLatin1String("-GCodeBlocks - MinGW Makefiles");
-#else // Q_OS_WIN
- const QString generator = QLatin1String("-GCodeBlocks - Unix Makefiles");
-#endif // Q_OS_WIN
const QString srcdir = buildDirectory.exists(QLatin1String("CMakeCache.txt")) ? QString(QLatin1Char('.')) : sourceDirectory;
qDebug()<<cmakeExecutable()<<srcdir<<arguments<<generator;
cmake->start(cmakeExecutable(), QStringList() << srcdir << arguments << generator);
@@ -185,6 +185,7 @@ void CMakeRunner::run(QFutureInterface<void> &fi)
m_mutex.lock();
m_supportsQtCreator = response.contains(QLatin1String("QtCreator"));
+ m_hasCodeBlocksMsvcGenerator = response.contains(QLatin1String("CodeBlocks - NMake Makefiles"));
m_version = versionRegexp.cap(1);
if (!(versionRegexp.capturedTexts().size() > 3))
m_version += QLatin1Char('.') + versionRegexp.cap(3);
@@ -230,6 +231,15 @@ bool CMakeRunner::supportsQtCreator() const
return result;
}
+bool CMakeRunner::hasCodeBlocksMsvcGenerator() const
+{
+ waitForUpToDate();
+ m_mutex.lock();
+ bool result = m_hasCodeBlocksMsvcGenerator;
+ m_mutex.unlock();
+ return result;
+}
+
void CMakeRunner::waitForUpToDate() const
{
m_future.waitForFinished();
@@ -317,6 +327,12 @@ QString CMakeSettingsPage::cmakeExecutable() const
return m_cmakeRunner.executable();
}
+bool CMakeSettingsPage::hasCodeBlocksMsvcGenerator() const
+{
+ return m_cmakeRunner.hasCodeBlocksMsvcGenerator();
+}
+
+
void CMakeSettingsPage::askUserForCMakeExecutable()
{
// TODO implement