diff options
author | dt <qtc-commiter@nokia.com> | 2009-01-12 16:01:49 +0100 |
---|---|---|
committer | dt <qtc-commiter@nokia.com> | 2009-01-12 16:01:49 +0100 |
commit | 71ea85dfee762e20f05301d9be24aaf4a52182b9 (patch) | |
tree | c39c6a3399847b8b4ce05325fbd5c3265a1f2d97 /src | |
parent | cc4e0e3ad129b64b7c9ed06827d789bb129bf527 (diff) | |
download | qt-creator-71ea85dfee762e20f05301d9be24aaf4a52182b9.tar.gz |
Fixes: Add the ability to add command line arguments to the cmake command line
Task: CMake support
Details: we don't pass those to the cbp file generation, that might create problems.
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakestep.cpp | 31 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakestep.h | 7 |
2 files changed, 35 insertions, 3 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakestep.cpp b/src/plugins/cmakeprojectmanager/cmakestep.cpp index 9ed0a67f35..b914b51b2c 100644 --- a/src/plugins/cmakeprojectmanager/cmakestep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakestep.cpp @@ -57,8 +57,14 @@ bool CMakeStep::init(const QString &buildConfiguration) setEnabled(buildConfiguration, true); setWorkingDirectory(buildConfiguration, m_pro->buildDirectory(buildConfiguration)); setCommand(buildConfiguration, "cmake"); // TODO give full path here? + QString sourceDir = QFileInfo(m_pro->file()->fileName()).absolutePath(); - setArguments(buildConfiguration, QStringList() << sourceDir << "-GUnix Makefiles"); // TODO + setArguments(buildConfiguration, + QStringList() + << sourceDir + << "-GUnix Makefiles" + << value(buildConfiguration, "userArguments").toStringList()); // TODO + setEnvironment(buildConfiguration, m_pro->environment(buildConfiguration)); return AbstractProcessStep::init(buildConfiguration); } @@ -93,6 +99,16 @@ bool CMakeStep::immutable() const return true; } +QString CMakeStep::userArguments(const QString &buildConfiguration) const +{ + return ProjectExplorer::Environment::joinArgumentList(value(buildConfiguration, "userArguments").toStringList()); +} + +void CMakeStep::setUserArguments(const QString &buildConfiguration, const QString &arguments) +{ + setValue(buildConfiguration, "userArguments", ProjectExplorer::Environment::parseCombinedArgString(arguments)); +} + // // CMakeBuildStepConfigWidget // @@ -104,6 +120,7 @@ CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeStep *cmakeStep) setLayout(fl); m_arguments = new QLineEdit(this); fl->addRow("Additional arguments", m_arguments); + connect(m_arguments, SIGNAL(textChanged(QString)), this, SLOT(argumentsLineEditChanged())); } QString CMakeBuildStepConfigWidget::displayName() const @@ -111,9 +128,17 @@ QString CMakeBuildStepConfigWidget::displayName() const return "CMake"; } -void CMakeBuildStepConfigWidget::init(const QString & /*buildConfiguration */) +void CMakeBuildStepConfigWidget::init(const QString &buildConfiguration) +{ + m_buildConfiguration = buildConfiguration; + disconnect(m_arguments, SIGNAL(textChanged(QString)), this, SLOT(argumentsLineEditChanged())); + m_arguments->setText(m_cmakeStep->userArguments(buildConfiguration)); + connect(m_arguments, SIGNAL(textChanged(QString)), this, SLOT(argumentsLineEditChanged())); +} + +void CMakeBuildStepConfigWidget::argumentsLineEditChanged() { - // TODO + m_cmakeStep->setUserArguments(m_buildConfiguration, m_arguments->text()); } // diff --git a/src/plugins/cmakeprojectmanager/cmakestep.h b/src/plugins/cmakeprojectmanager/cmakestep.h index ec7c9cf9ad..fdf93c31a8 100644 --- a/src/plugins/cmakeprojectmanager/cmakestep.h +++ b/src/plugins/cmakeprojectmanager/cmakestep.h @@ -60,18 +60,25 @@ public: virtual QString displayName(); virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget(); virtual bool immutable() const; + + void setUserArguments(const QString &buildConfiguration, const QString &arguments); + QString userArguments(const QString &buildConfiguration) const; private: CMakeProject *m_pro; }; class CMakeBuildStepConfigWidget :public ProjectExplorer::BuildStepConfigWidget { + Q_OBJECT public: CMakeBuildStepConfigWidget(CMakeStep *cmakeStep); virtual QString displayName() const; virtual void init(const QString &buildConfiguration); +private slots: + void argumentsLineEditChanged(); private: CMakeStep *m_cmakeStep; + QString m_buildConfiguration; QLineEdit *m_arguments; }; |