summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordt <qtc-commiter@nokia.com>2009-01-12 16:01:49 +0100
committerdt <qtc-commiter@nokia.com>2009-01-12 16:01:49 +0100
commit71ea85dfee762e20f05301d9be24aaf4a52182b9 (patch)
treec39c6a3399847b8b4ce05325fbd5c3265a1f2d97 /src
parentcc4e0e3ad129b64b7c9ed06827d789bb129bf527 (diff)
downloadqt-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.cpp31
-rw-r--r--src/plugins/cmakeprojectmanager/cmakestep.h7
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;
};