forked from qt-creator/qt-creator
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.
This commit is contained in:
@@ -57,8 +57,14 @@ bool CMakeStep::init(const QString &buildConfiguration)
|
|||||||
setEnabled(buildConfiguration, true);
|
setEnabled(buildConfiguration, true);
|
||||||
setWorkingDirectory(buildConfiguration, m_pro->buildDirectory(buildConfiguration));
|
setWorkingDirectory(buildConfiguration, m_pro->buildDirectory(buildConfiguration));
|
||||||
setCommand(buildConfiguration, "cmake"); // TODO give full path here?
|
setCommand(buildConfiguration, "cmake"); // TODO give full path here?
|
||||||
|
|
||||||
QString sourceDir = QFileInfo(m_pro->file()->fileName()).absolutePath();
|
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));
|
setEnvironment(buildConfiguration, m_pro->environment(buildConfiguration));
|
||||||
return AbstractProcessStep::init(buildConfiguration);
|
return AbstractProcessStep::init(buildConfiguration);
|
||||||
}
|
}
|
||||||
@@ -93,6 +99,16 @@ bool CMakeStep::immutable() const
|
|||||||
return true;
|
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
|
// CMakeBuildStepConfigWidget
|
||||||
//
|
//
|
||||||
@@ -104,6 +120,7 @@ CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeStep *cmakeStep)
|
|||||||
setLayout(fl);
|
setLayout(fl);
|
||||||
m_arguments = new QLineEdit(this);
|
m_arguments = new QLineEdit(this);
|
||||||
fl->addRow("Additional arguments", m_arguments);
|
fl->addRow("Additional arguments", m_arguments);
|
||||||
|
connect(m_arguments, SIGNAL(textChanged(QString)), this, SLOT(argumentsLineEditChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CMakeBuildStepConfigWidget::displayName() const
|
QString CMakeBuildStepConfigWidget::displayName() const
|
||||||
@@ -111,9 +128,17 @@ QString CMakeBuildStepConfigWidget::displayName() const
|
|||||||
return "CMake";
|
return "CMake";
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeBuildStepConfigWidget::init(const QString & /*buildConfiguration */)
|
void CMakeBuildStepConfigWidget::init(const QString &buildConfiguration)
|
||||||
{
|
{
|
||||||
// TODO
|
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()
|
||||||
|
{
|
||||||
|
m_cmakeStep->setUserArguments(m_buildConfiguration, m_arguments->text());
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -60,18 +60,25 @@ public:
|
|||||||
virtual QString displayName();
|
virtual QString displayName();
|
||||||
virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget();
|
virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget();
|
||||||
virtual bool immutable() const;
|
virtual bool immutable() const;
|
||||||
|
|
||||||
|
void setUserArguments(const QString &buildConfiguration, const QString &arguments);
|
||||||
|
QString userArguments(const QString &buildConfiguration) const;
|
||||||
private:
|
private:
|
||||||
CMakeProject *m_pro;
|
CMakeProject *m_pro;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CMakeBuildStepConfigWidget :public ProjectExplorer::BuildStepConfigWidget
|
class CMakeBuildStepConfigWidget :public ProjectExplorer::BuildStepConfigWidget
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
CMakeBuildStepConfigWidget(CMakeStep *cmakeStep);
|
CMakeBuildStepConfigWidget(CMakeStep *cmakeStep);
|
||||||
virtual QString displayName() const;
|
virtual QString displayName() const;
|
||||||
virtual void init(const QString &buildConfiguration);
|
virtual void init(const QString &buildConfiguration);
|
||||||
|
private slots:
|
||||||
|
void argumentsLineEditChanged();
|
||||||
private:
|
private:
|
||||||
CMakeStep *m_cmakeStep;
|
CMakeStep *m_cmakeStep;
|
||||||
|
QString m_buildConfiguration;
|
||||||
QLineEdit *m_arguments;
|
QLineEdit *m_arguments;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user