diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp index 0939a1c43f3ef99207f4c2f9df4a08bdaeae616d..f9526756e799b3d76d39436ecce69abcacb0d486 100644 --- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp @@ -435,9 +435,10 @@ void CMakeRunPage::runCMake() m_output->clear(); if (m_cmakeWizard->cmakeManager()->isCMakeExecutableValid()) { - m_cmakeProcess = cmakeManager->createXmlFile(arguments, m_cmakeWizard->sourceDirectory(), m_buildDirectory, env, generator); + m_cmakeProcess = new QProcess(); connect(m_cmakeProcess, SIGNAL(readyRead()), this, SLOT(cmakeReadyRead())); connect(m_cmakeProcess, SIGNAL(finished(int)), this, SLOT(cmakeFinished())); + cmakeManager->createXmlFile(m_cmakeProcess, arguments, m_cmakeWizard->sourceDirectory(), m_buildDirectory, env, generator); } else { m_runCMake->setEnabled(true); m_argumentsLineEdit->setEnabled(true); diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index fbab5af5d8f773ef6c4fb89a38b7a8bc4ab927f8..d0b683c8b38c29571ced06da61c1f3d412943f83 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -99,7 +99,7 @@ bool CMakeManager::hasCodeBlocksMsvcGenerator() const // 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, const QString &generator) +void CMakeManager::createXmlFile(QProcess *proc, 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 @@ -111,14 +111,12 @@ QProcess *CMakeManager::createXmlFile(const QStringList &arguments, const QStrin // TODO we need to pass on the same paremeters as the cmakestep QString buildDirectoryPath = buildDirectory.absolutePath(); buildDirectory.mkpath(buildDirectoryPath); - QProcess *cmake = new QProcess; - cmake->setWorkingDirectory(buildDirectoryPath); - cmake->setProcessChannelMode(QProcess::MergedChannels); - cmake->setEnvironment(env.toStringList()); + proc->setWorkingDirectory(buildDirectoryPath); + proc->setProcessChannelMode(QProcess::MergedChannels); + proc->setEnvironment(env.toStringList()); const QString srcdir = buildDirectory.exists(QLatin1String("CMakeCache.txt")) ? QString(QLatin1Char('.')) : sourceDirectory; - cmake->start(cmakeExecutable(), QStringList() << srcdir << arguments << generator); - return cmake; + proc->start(cmakeExecutable(), QStringList() << srcdir << arguments << generator); } QString CMakeManager::findCbpFile(const QDir &directory) diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h index a33055235ab0f88b92099aaab1dcf3055d0af089..2c8a3ee3fc03f2524b9235895055bce3c70bf1de 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h @@ -63,11 +63,12 @@ public: void setCMakeExecutable(const QString &executable); - QProcess* createXmlFile(const QStringList &arguments, - const QString &sourceDirectory, - const QDir &buildDirectory, - const ProjectExplorer::Environment &env, - const QString &generator); + void createXmlFile(QProcess *process, + const QStringList &arguments, + const QString &sourceDirectory, + const QDir &buildDirectory, + const ProjectExplorer::Environment &env, + const QString &generator); bool hasCodeBlocksMsvcGenerator() const; static QString findCbpFile(const QDir &);