ENH:
For bug #7191. Improvements to the dialog that sets up the first configure. Fixing the large size of it by breaking it up into a wizard. Also incorporated suggestions from bug report.
This commit is contained in:
parent
2d842b6798
commit
64b377d707
|
@ -1,244 +0,0 @@
|
||||||
|
|
||||||
#include "CMakeFirstConfigure.h"
|
|
||||||
|
|
||||||
#include <QSettings>
|
|
||||||
|
|
||||||
CMakeFirstConfigure::CMakeFirstConfigure()
|
|
||||||
{
|
|
||||||
this->UI.setupUi(this);
|
|
||||||
this->UI.useDefaults->setChecked(true);
|
|
||||||
this->updatePage();
|
|
||||||
|
|
||||||
this->UI.useToolChainFile->setChecked(true);
|
|
||||||
this->updateToolChainPage();
|
|
||||||
|
|
||||||
QObject::connect(this->UI.useDefaults, SIGNAL(toggled(bool)),
|
|
||||||
this, SLOT(updatePage()));
|
|
||||||
QObject::connect(this->UI.compilerSetup, SIGNAL(toggled(bool)),
|
|
||||||
this, SLOT(updatePage()));
|
|
||||||
QObject::connect(this->UI.crossCompilerSetup, SIGNAL(toggled(bool)),
|
|
||||||
this, SLOT(updatePage()));
|
|
||||||
|
|
||||||
QObject::connect(this->UI.useToolChainFile, SIGNAL(toggled(bool)),
|
|
||||||
this, SLOT(updateToolChainPage()));
|
|
||||||
}
|
|
||||||
|
|
||||||
CMakeFirstConfigure::~CMakeFirstConfigure()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMakeFirstConfigure::setGenerators(const QStringList& gens)
|
|
||||||
{
|
|
||||||
this->UI.generators->clear();
|
|
||||||
this->UI.generators->addItems(gens);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getGenerator() const
|
|
||||||
{
|
|
||||||
return this->UI.generators->currentText();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMakeFirstConfigure::loadFromSettings()
|
|
||||||
{
|
|
||||||
QSettings settings;
|
|
||||||
settings.beginGroup("Settings/StartPath");
|
|
||||||
|
|
||||||
// restore generator
|
|
||||||
QString lastGen = settings.value("LastGenerator").toString();
|
|
||||||
int idx = this->UI.generators->findText(lastGen);
|
|
||||||
if(idx != -1)
|
|
||||||
{
|
|
||||||
this->UI.generators->setCurrentIndex(idx);
|
|
||||||
}
|
|
||||||
settings.endGroup();
|
|
||||||
|
|
||||||
// restore compiler setup
|
|
||||||
settings.beginGroup("Settings/Compiler");
|
|
||||||
this->UI.CCompiler->setText(settings.value("CCompiler").toString());
|
|
||||||
this->UI.CXXCompiler->setText(settings.value("CXXCompiler").toString());
|
|
||||||
this->UI.FortranCompiler->setText(settings.value("FortranCompiler").toString());
|
|
||||||
settings.endGroup();
|
|
||||||
|
|
||||||
// restore cross compiler setup
|
|
||||||
settings.beginGroup("Settings/CrossCompiler");
|
|
||||||
this->UI.crossCCompiler->setText(settings.value("CCompiler").toString());
|
|
||||||
this->UI.crossCXXCompiler->setText(settings.value("CXXCompiler").toString());
|
|
||||||
this->UI.crossFortranCompiler->setText(settings.value("FortranCompiler").toString());
|
|
||||||
this->UI.useToolChainFile->setChecked(settings.value("UseToolChainFile", true).toBool());
|
|
||||||
this->UI.toolChainFile->setText(settings.value("ToolChainFile").toString());
|
|
||||||
this->UI.systemName->setText(settings.value("SystemName").toString());
|
|
||||||
this->UI.systemVersion->setText(settings.value("SystemVersion").toString());
|
|
||||||
this->UI.systemProcessor->setText(settings.value("SystemProcessor").toString());
|
|
||||||
this->UI.crossFindRoot->setText(settings.value("FindRoot").toString());
|
|
||||||
this->UI.crossProgramMode->setCurrentIndex(settings.value("ProgramMode", 0).toInt());
|
|
||||||
this->UI.crossLibraryMode->setCurrentIndex(settings.value("LibraryMode", 0).toInt());
|
|
||||||
this->UI.crossIncludeMode->setCurrentIndex(settings.value("IncludeMode", 0).toInt());
|
|
||||||
settings.endGroup();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMakeFirstConfigure::saveToSettings()
|
|
||||||
{
|
|
||||||
QSettings settings;
|
|
||||||
settings.beginGroup("Settings/StartPath");
|
|
||||||
|
|
||||||
// save generator
|
|
||||||
QString lastGen = this->UI.generators->currentText();
|
|
||||||
settings.setValue("LastGenerator", lastGen);
|
|
||||||
|
|
||||||
settings.endGroup();
|
|
||||||
|
|
||||||
// save compiler setup
|
|
||||||
settings.beginGroup("Settings/Compiler");
|
|
||||||
settings.setValue("CCompiler", this->UI.CCompiler->text());
|
|
||||||
settings.setValue("CXXCompiler", this->UI.CXXCompiler->text());
|
|
||||||
settings.setValue("FortranCompiler", this->UI.FortranCompiler->text());
|
|
||||||
settings.endGroup();
|
|
||||||
|
|
||||||
// save cross compiler setup
|
|
||||||
settings.beginGroup("Settings/CrossCompiler");
|
|
||||||
settings.setValue("CCompiler", this->UI.crossCCompiler->text());
|
|
||||||
settings.setValue("CXXCompiler", this->UI.crossCXXCompiler->text());
|
|
||||||
settings.setValue("FortranCompiler", this->UI.crossFortranCompiler->text());
|
|
||||||
settings.setValue("UseToolChainFile", this->UI.useToolChainFile->isChecked());
|
|
||||||
settings.setValue("ToolChainFile", this->UI.toolChainFile->text());
|
|
||||||
settings.setValue("SystemName", this->UI.systemName->text());
|
|
||||||
settings.setValue("SystemVersion", this->UI.systemVersion->text());
|
|
||||||
settings.setValue("SystemProcessor", this->UI.systemProcessor->text());
|
|
||||||
settings.setValue("FindRoot", this->UI.crossFindRoot->text());
|
|
||||||
settings.setValue("ProgramMode", this->UI.crossProgramMode->currentIndex());
|
|
||||||
settings.setValue("LibraryMode", this->UI.crossLibraryMode->currentIndex());
|
|
||||||
settings.setValue("IncludeMode", this->UI.crossIncludeMode->currentIndex());
|
|
||||||
settings.endGroup();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMakeFirstConfigure::updatePage()
|
|
||||||
{
|
|
||||||
if(this->UI.useDefaults->isChecked())
|
|
||||||
{
|
|
||||||
this->UI.stackedWidget->setCurrentIndex(0);
|
|
||||||
}
|
|
||||||
else if(this->UI.compilerSetup->isChecked())
|
|
||||||
{
|
|
||||||
this->UI.stackedWidget->setCurrentIndex(1);
|
|
||||||
}
|
|
||||||
else if(this->UI.crossCompilerSetup->isChecked())
|
|
||||||
{
|
|
||||||
this->UI.stackedWidget->setCurrentIndex(2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CMakeFirstConfigure::updateToolChainPage()
|
|
||||||
{
|
|
||||||
if(this->UI.useToolChainFile->isChecked())
|
|
||||||
{
|
|
||||||
this->UI.toolChainStack->setCurrentIndex(0);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this->UI.toolChainStack->setCurrentIndex(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CMakeFirstConfigure::defaultSetup() const
|
|
||||||
{
|
|
||||||
return this->UI.useDefaults->isChecked();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CMakeFirstConfigure::compilerSetup() const
|
|
||||||
{
|
|
||||||
return this->UI.compilerSetup->isChecked();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool CMakeFirstConfigure::crossCompilerSetup() const
|
|
||||||
{
|
|
||||||
return this->UI.crossCompilerSetup->isChecked();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::crossCompilerToolChainFile() const
|
|
||||||
{
|
|
||||||
if(this->UI.useToolChainFile->isChecked())
|
|
||||||
{
|
|
||||||
return this->UI.toolChainFile->text();
|
|
||||||
}
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getSystemName() const
|
|
||||||
{
|
|
||||||
return this->UI.systemName->text();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getCCompiler() const
|
|
||||||
{
|
|
||||||
if(this->compilerSetup())
|
|
||||||
{
|
|
||||||
return this->UI.CCompiler->text();
|
|
||||||
}
|
|
||||||
else if(this->crossCompilerSetup())
|
|
||||||
{
|
|
||||||
return this->UI.crossCCompiler->text();
|
|
||||||
}
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getCXXCompiler() const
|
|
||||||
{
|
|
||||||
if(this->compilerSetup())
|
|
||||||
{
|
|
||||||
return this->UI.CXXCompiler->text();
|
|
||||||
}
|
|
||||||
else if(this->crossCompilerSetup())
|
|
||||||
{
|
|
||||||
return this->UI.crossCXXCompiler->text();
|
|
||||||
}
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getFortranCompiler() const
|
|
||||||
{
|
|
||||||
if(this->compilerSetup())
|
|
||||||
{
|
|
||||||
return this->UI.FortranCompiler->text();
|
|
||||||
}
|
|
||||||
else if(this->crossCompilerSetup())
|
|
||||||
{
|
|
||||||
return this->UI.crossFortranCompiler->text();
|
|
||||||
}
|
|
||||||
return QString();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getSystemVersion() const
|
|
||||||
{
|
|
||||||
return this->UI.systemVersion->text();
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getSystemProcessor() const
|
|
||||||
{
|
|
||||||
return this->UI.systemProcessor->text();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getCrossRoot() const
|
|
||||||
{
|
|
||||||
return this->UI.crossFindRoot->text();
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char* crossModes[3] = {"BOTH", "ONLY", "NEVER" };
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getCrossProgramMode() const
|
|
||||||
{
|
|
||||||
return crossModes[this->UI.crossProgramMode->currentIndex()];
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getCrossLibraryMode() const
|
|
||||||
{
|
|
||||||
return crossModes[this->UI.crossLibraryMode->currentIndex()];
|
|
||||||
}
|
|
||||||
|
|
||||||
QString CMakeFirstConfigure::getCrossIncludeMode() const
|
|
||||||
{
|
|
||||||
return crossModes[this->UI.crossIncludeMode->currentIndex()];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
|
|
||||||
#ifndef CMakeFirstConfigure_h
|
|
||||||
#define CMakeFirstConfigure_h
|
|
||||||
|
|
||||||
#include <QDialog>
|
|
||||||
#include "ui_CMakeFirstConfigure.h"
|
|
||||||
|
|
||||||
class CMakeFirstConfigure : public QDialog
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
CMakeFirstConfigure();
|
|
||||||
~CMakeFirstConfigure();
|
|
||||||
|
|
||||||
void setGenerators(const QStringList& gens);
|
|
||||||
QString getGenerator() const;
|
|
||||||
|
|
||||||
bool defaultSetup() const;
|
|
||||||
bool compilerSetup() const;
|
|
||||||
bool crossCompilerSetup() const;
|
|
||||||
QString crossCompilerToolChainFile() const;
|
|
||||||
|
|
||||||
QString getCCompiler() const;
|
|
||||||
QString getCXXCompiler() const;
|
|
||||||
QString getFortranCompiler() const;
|
|
||||||
|
|
||||||
QString getSystemName() const;
|
|
||||||
QString getSystemVersion() const;
|
|
||||||
QString getSystemProcessor() const;
|
|
||||||
|
|
||||||
QString getCrossRoot() const;
|
|
||||||
QString getCrossProgramMode() const;
|
|
||||||
QString getCrossLibraryMode() const;
|
|
||||||
QString getCrossIncludeMode() const;
|
|
||||||
|
|
||||||
void loadFromSettings();
|
|
||||||
void saveToSettings();
|
|
||||||
|
|
||||||
protected slots:
|
|
||||||
void updatePage();
|
|
||||||
void updateToolChainPage();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
Ui::CMakeFirstConfigure UI;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // CMakeFirstConfigure_h
|
|
||||||
|
|
|
@ -1,606 +0,0 @@
|
||||||
<ui version="4.0" >
|
|
||||||
<class>CMakeFirstConfigure</class>
|
|
||||||
<widget class="QDialog" name="CMakeFirstConfigure" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>609</width>
|
|
||||||
<height>547</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle" >
|
|
||||||
<string>First Configure Setup</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QLabel" name="label" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Minimum" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Please select what build system you want CMake to generate files for. You should select the tool that you will use to build the project.</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="generators" />
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>40</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0" >
|
|
||||||
<layout class="QVBoxLayout" >
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="useDefaults" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Use Defaults</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="compilerSetup" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Compiler Setup</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="crossCompilerSetup" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Cross Compiler Setup</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0" >
|
|
||||||
<widget class="Line" name="line" >
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0" >
|
|
||||||
<widget class="QStackedWidget" name="stackedWidget" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="currentIndex" >
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="defaultPage" >
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="leftMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QLabel" name="label_2" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>The default compilers will be used.</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment" >
|
|
||||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="compilerPage" >
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QGroupBox" name="groupBox_4" >
|
|
||||||
<property name="title" >
|
|
||||||
<string>Compilers</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QLabel" name="label_16" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>C</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QCMakeFilePathEditor" name="CCompiler" />
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2" >
|
|
||||||
<widget class="QLabel" name="label_17" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>C++</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="3" >
|
|
||||||
<widget class="QCMakeFilePathEditor" name="CXXCompiler" />
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<widget class="QLabel" name="label_18" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Fortran</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1" >
|
|
||||||
<widget class="QCMakeFilePathEditor" name="FortranCompiler" />
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>566</width>
|
|
||||||
<height>71</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="crossCompilerPage" >
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="leftMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin" >
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<widget class="QStackedWidget" name="toolChainStack" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="currentIndex" >
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="page" >
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<property name="leftMargin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin" >
|
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QCMakeFilePathEditor" name="toolChainFile" />
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QLabel" name="label_5" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Tool Chain File</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="page_2" >
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QGroupBox" name="groupBox" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="title" >
|
|
||||||
<string>System</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<layout class="QHBoxLayout" >
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_6" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Name</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="systemName" />
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_10" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Version</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="systemVersion" />
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_11" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Processor</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="systemProcessor" />
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<widget class="QGroupBox" name="groupBox_3" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="title" >
|
|
||||||
<string>Compilers</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QLabel" name="label_8" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>C</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QCMakeFilePathEditor" name="crossCCompiler" />
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2" >
|
|
||||||
<widget class="QLabel" name="label_7" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>C++</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="3" >
|
|
||||||
<widget class="QCMakeFilePathEditor" name="crossCXXCompiler" />
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<widget class="QLabel" name="label_15" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Fortran</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1" >
|
|
||||||
<widget class="QCMakeFilePathEditor" name="crossFortranCompiler" />
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0" >
|
|
||||||
<widget class="QGroupBox" name="groupBox_2" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="title" >
|
|
||||||
<string>Find Program/Library/Include</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" >
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QLabel" name="label_9" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Root</string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" >
|
|
||||||
<widget class="QCMakePathEditor" name="crossFindRoot" />
|
|
||||||
</item>
|
|
||||||
<item row="0" column="2" >
|
|
||||||
<widget class="QLabel" name="label_12" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Program Mode</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="3" >
|
|
||||||
<widget class="QComboBox" name="crossProgramMode" >
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Find from Root then system</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Only find from Root</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Don't find from Root</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0" >
|
|
||||||
<widget class="QLabel" name="label_13" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Library Mode</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1" >
|
|
||||||
<widget class="QComboBox" name="crossLibraryMode" >
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Find from Root then system</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Only find from Root</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Don't find from Root</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2" >
|
|
||||||
<widget class="QLabel" name="label_14" >
|
|
||||||
<property name="sizePolicy" >
|
|
||||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Include Mode</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="3" >
|
|
||||||
<widget class="QComboBox" name="crossIncludeMode" >
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Find from Root then system</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Only find from Root</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<property name="text" >
|
|
||||||
<string>Don't find from Root</string>
|
|
||||||
</property>
|
|
||||||
</item>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0" >
|
|
||||||
<widget class="QCheckBox" name="useToolChainFile" >
|
|
||||||
<property name="text" >
|
|
||||||
<string>Use ToolChain File</string>
|
|
||||||
</property>
|
|
||||||
<property name="checked" >
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="6" column="0" >
|
|
||||||
<widget class="QDialogButtonBox" name="buttonBox" >
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="standardButtons" >
|
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="5" column="0" >
|
|
||||||
<spacer>
|
|
||||||
<property name="orientation" >
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeType" >
|
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" >
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>20</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<customwidgets>
|
|
||||||
<customwidget>
|
|
||||||
<class>QCMakeFilePathEditor</class>
|
|
||||||
<extends>QLineEdit</extends>
|
|
||||||
<header>QCMakeWidgets.h</header>
|
|
||||||
</customwidget>
|
|
||||||
<customwidget>
|
|
||||||
<class>QCMakePathEditor</class>
|
|
||||||
<extends>QLineEdit</extends>
|
|
||||||
<header>QCMakeWidgets.h</header>
|
|
||||||
</customwidget>
|
|
||||||
</customwidgets>
|
|
||||||
<resources/>
|
|
||||||
<connections>
|
|
||||||
<connection>
|
|
||||||
<sender>buttonBox</sender>
|
|
||||||
<signal>accepted()</signal>
|
|
||||||
<receiver>CMakeFirstConfigure</receiver>
|
|
||||||
<slot>accept()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel" >
|
|
||||||
<x>227</x>
|
|
||||||
<y>284</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel" >
|
|
||||||
<x>157</x>
|
|
||||||
<y>274</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>buttonBox</sender>
|
|
||||||
<signal>rejected()</signal>
|
|
||||||
<receiver>CMakeFirstConfigure</receiver>
|
|
||||||
<slot>reject()</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel" >
|
|
||||||
<x>295</x>
|
|
||||||
<y>290</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel" >
|
|
||||||
<x>286</x>
|
|
||||||
<y>274</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
</connections>
|
|
||||||
</ui>
|
|
|
@ -16,11 +16,11 @@ ELSE(NOT QT4_FOUND)
|
||||||
SET(SRCS
|
SET(SRCS
|
||||||
AddCacheEntry.cxx
|
AddCacheEntry.cxx
|
||||||
AddCacheEntry.h
|
AddCacheEntry.h
|
||||||
CMakeFirstConfigure.cxx
|
|
||||||
CMakeFirstConfigure.h
|
|
||||||
CMakeSetup.cxx
|
CMakeSetup.cxx
|
||||||
CMakeSetupDialog.cxx
|
CMakeSetupDialog.cxx
|
||||||
CMakeSetupDialog.h
|
CMakeSetupDialog.h
|
||||||
|
FirstConfigure.cxx
|
||||||
|
FirstConfigure.h
|
||||||
QCMake.cxx
|
QCMake.cxx
|
||||||
QCMake.h
|
QCMake.h
|
||||||
QCMakeCacheView.cxx
|
QCMakeCacheView.cxx
|
||||||
|
@ -31,15 +31,17 @@ ELSE(NOT QT4_FOUND)
|
||||||
QMacInstallDialog.h
|
QMacInstallDialog.h
|
||||||
)
|
)
|
||||||
QT4_WRAP_UI(UI_SRCS
|
QT4_WRAP_UI(UI_SRCS
|
||||||
CMakeFirstConfigure.ui
|
|
||||||
CMakeSetupDialog.ui
|
CMakeSetupDialog.ui
|
||||||
|
Compilers.ui
|
||||||
|
CrossCompiler.ui
|
||||||
AddCacheEntry.ui
|
AddCacheEntry.ui
|
||||||
MacInstallDialog.ui
|
MacInstallDialog.ui
|
||||||
)
|
)
|
||||||
QT4_WRAP_CPP(MOC_SRCS
|
QT4_WRAP_CPP(MOC_SRCS
|
||||||
AddCacheEntry.h
|
AddCacheEntry.h
|
||||||
CMakeFirstConfigure.h
|
Compilers.h
|
||||||
CMakeSetupDialog.h
|
CMakeSetupDialog.h
|
||||||
|
FirstConfigure.h
|
||||||
QCMake.h
|
QCMake.h
|
||||||
QCMakeCacheView.h
|
QCMakeCacheView.h
|
||||||
QCMakeWidgets.h
|
QCMakeWidgets.h
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
#include "QCMake.h"
|
#include "QCMake.h"
|
||||||
#include "QCMakeCacheView.h"
|
#include "QCMakeCacheView.h"
|
||||||
#include "AddCacheEntry.h"
|
#include "AddCacheEntry.h"
|
||||||
#include "CMakeFirstConfigure.h"
|
#include "FirstConfigure.h"
|
||||||
|
|
||||||
QCMakeThread::QCMakeThread(QObject* p)
|
QCMakeThread::QCMakeThread(QObject* p)
|
||||||
: QThread(p), CMakeInstance(NULL)
|
: QThread(p), CMakeInstance(NULL)
|
||||||
|
@ -552,7 +552,7 @@ void CMakeSetupDialog::setEnabledState(bool enabled)
|
||||||
|
|
||||||
bool CMakeSetupDialog::setupFirstConfigure()
|
bool CMakeSetupDialog::setupFirstConfigure()
|
||||||
{
|
{
|
||||||
CMakeFirstConfigure dialog;
|
FirstConfigure dialog;
|
||||||
|
|
||||||
// initialize dialog and restore saved settings
|
// initialize dialog and restore saved settings
|
||||||
|
|
||||||
|
@ -561,7 +561,7 @@ bool CMakeSetupDialog::setupFirstConfigure()
|
||||||
|
|
||||||
// restore from settings
|
// restore from settings
|
||||||
dialog.loadFromSettings();
|
dialog.loadFromSettings();
|
||||||
|
|
||||||
if(dialog.exec() == QDialog::Accepted)
|
if(dialog.exec() == QDialog::Accepted)
|
||||||
{
|
{
|
||||||
dialog.saveToSettings();
|
dialog.saveToSettings();
|
||||||
|
@ -593,45 +593,42 @@ bool CMakeSetupDialog::setupFirstConfigure()
|
||||||
}
|
}
|
||||||
else if(dialog.crossCompilerSetup())
|
else if(dialog.crossCompilerSetup())
|
||||||
{
|
{
|
||||||
QString toolchainFile = dialog.crossCompilerToolChainFile();
|
QString fortranCompiler = dialog.getFortranCompiler();
|
||||||
if(!toolchainFile.isEmpty())
|
if(!fortranCompiler.isEmpty())
|
||||||
{
|
{
|
||||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_TOOLCHAIN_FILE",
|
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_Fortran_COMPILER",
|
||||||
"Cross Compile ToolChain File", toolchainFile, false);
|
"Fortran compiler.", fortranCompiler, false);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
QString fortranCompiler = dialog.getFortranCompiler();
|
|
||||||
if(!fortranCompiler.isEmpty())
|
|
||||||
{
|
|
||||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_Fortran_COMPILER",
|
|
||||||
"Fortran compiler.", fortranCompiler, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString mode = dialog.getCrossIncludeMode();
|
QString mode = dialog.getCrossIncludeMode();
|
||||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE",
|
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE",
|
||||||
"CMake Find Include Mode", mode, false);
|
"CMake Find Include Mode", mode, false);
|
||||||
mode = dialog.getCrossLibraryMode();
|
mode = dialog.getCrossLibraryMode();
|
||||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY",
|
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY",
|
||||||
"CMake Find Library Mode", mode, false);
|
"CMake Find Library Mode", mode, false);
|
||||||
mode = dialog.getCrossProgramMode();
|
mode = dialog.getCrossProgramMode();
|
||||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM",
|
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM",
|
||||||
"CMake Find Program Mode", mode, false);
|
"CMake Find Program Mode", mode, false);
|
||||||
|
|
||||||
QString rootPath = dialog.getCrossRoot();
|
QString rootPath = dialog.getCrossRoot();
|
||||||
m->insertProperty(QCMakeProperty::PATH, "CMAKE_FIND_ROOT_PATH",
|
m->insertProperty(QCMakeProperty::PATH, "CMAKE_FIND_ROOT_PATH",
|
||||||
"CMake Find Root Path", rootPath, false);
|
"CMake Find Root Path", rootPath, false);
|
||||||
|
|
||||||
QString systemName = dialog.getSystemName();
|
QString systemName = dialog.getSystemName();
|
||||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_SYSTEM_NAME",
|
m->insertProperty(QCMakeProperty::STRING, "CMAKE_SYSTEM_NAME",
|
||||||
"CMake System Name", systemName, false);
|
"CMake System Name", systemName, false);
|
||||||
QString cxxCompiler = dialog.getCXXCompiler();
|
QString cxxCompiler = dialog.getCXXCompiler();
|
||||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_CXX_COMPILER",
|
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_CXX_COMPILER",
|
||||||
"CXX compiler.", cxxCompiler, false);
|
"CXX compiler.", cxxCompiler, false);
|
||||||
QString cCompiler = dialog.getCCompiler();
|
QString cCompiler = dialog.getCCompiler();
|
||||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_C_COMPILER",
|
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_C_COMPILER",
|
||||||
"C compiler.", cCompiler, false);
|
"C compiler.", cCompiler, false);
|
||||||
}
|
}
|
||||||
|
else if(dialog.crossCompilerToolChainFile())
|
||||||
|
{
|
||||||
|
QString toolchainFile = dialog.getCrossCompilerToolChainFile();
|
||||||
|
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_TOOLCHAIN_FILE",
|
||||||
|
"Cross Compile ToolChain File", toolchainFile, false);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef COMPILERS_HPP
|
||||||
|
#define COMPILERS_HPP
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <ui_Compilers.h>
|
||||||
|
|
||||||
|
class Compilers : public QWidget, public Ui::Compilers
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
Compilers(QWidget* p=NULL) :
|
||||||
|
QWidget(p)
|
||||||
|
{
|
||||||
|
this->setupUi(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
<ui version="4.0" >
|
||||||
|
<class>Compilers</class>
|
||||||
|
<widget class="QWidget" name="Compilers" >
|
||||||
|
<property name="geometry" >
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>506</width>
|
||||||
|
<height>115</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle" >
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" >
|
||||||
|
<property name="leftMargin" >
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin" >
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin" >
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin" >
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0" >
|
||||||
|
<widget class="QGroupBox" name="groupBox_4" >
|
||||||
|
<property name="title" >
|
||||||
|
<string>Compilers</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" >
|
||||||
|
<property name="leftMargin" >
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin" >
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin" >
|
||||||
|
<number>4</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0" >
|
||||||
|
<widget class="QLabel" name="label_16" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>C</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" >
|
||||||
|
<widget class="QCMakeFilePathEditor" name="CCompiler" />
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2" >
|
||||||
|
<widget class="QLabel" name="label_17" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>C++</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3" >
|
||||||
|
<widget class="QCMakeFilePathEditor" name="CXXCompiler" />
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" >
|
||||||
|
<widget class="QLabel" name="label_18" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>Fortran</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" >
|
||||||
|
<widget class="QCMakeFilePathEditor" name="FortranCompiler" />
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>QCMakeFilePathEditor</class>
|
||||||
|
<extends>QLineEdit</extends>
|
||||||
|
<header>QCMakeWidgets.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -0,0 +1,218 @@
|
||||||
|
<ui version="4.0" >
|
||||||
|
<class>CrossCompiler</class>
|
||||||
|
<widget class="QWidget" name="CrossCompiler" >
|
||||||
|
<property name="geometry" >
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>433</width>
|
||||||
|
<height>319</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle" >
|
||||||
|
<string>CrossCompiler</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" >
|
||||||
|
<item row="0" column="0" >
|
||||||
|
<widget class="QGroupBox" name="groupBox" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title" >
|
||||||
|
<string>Target System</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" >
|
||||||
|
<item row="0" column="0" >
|
||||||
|
<widget class="QLabel" name="label_6" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Operating System</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" >
|
||||||
|
<widget class="QCMakeFilePathEditor" name="systemName" />
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2" colspan="2" >
|
||||||
|
<spacer>
|
||||||
|
<property name="orientation" >
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" >
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" >
|
||||||
|
<widget class="QLabel" name="label_10" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Version</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap" >
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" >
|
||||||
|
<widget class="QLineEdit" name="systemVersion" />
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2" >
|
||||||
|
<widget class="QLabel" name="label_11" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Processor</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap" >
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3" >
|
||||||
|
<widget class="QLineEdit" name="systemProcessor" />
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" >
|
||||||
|
<widget class="QGroupBox" name="groupBox_2" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title" >
|
||||||
|
<string>Find Program/Library/Include</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" >
|
||||||
|
<item row="0" column="0" >
|
||||||
|
<widget class="QLabel" name="label_9" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Target Root</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap" >
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" >
|
||||||
|
<widget class="QCMakePathEditor" name="crossFindRoot" />
|
||||||
|
</item>
|
||||||
|
<item row="0" column="2" >
|
||||||
|
<widget class="QLabel" name="label_12" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Program Mode</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="3" >
|
||||||
|
<widget class="QComboBox" name="crossProgramMode" />
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" >
|
||||||
|
<widget class="QLabel" name="label_13" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Library Mode</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" >
|
||||||
|
<widget class="QComboBox" name="crossLibraryMode" />
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2" >
|
||||||
|
<widget class="QLabel" name="label_14" >
|
||||||
|
<property name="sizePolicy" >
|
||||||
|
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text" >
|
||||||
|
<string>Include Mode</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3" >
|
||||||
|
<widget class="QComboBox" name="crossIncludeMode" />
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0" >
|
||||||
|
<widget class="Compilers" native="1" name="CrossCompilers" >
|
||||||
|
<property name="focusPolicy" >
|
||||||
|
<enum>Qt::TabFocus</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>QCMakePathEditor</class>
|
||||||
|
<extends>QLineEdit</extends>
|
||||||
|
<header>QCMakeWidgets.h</header>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>Compilers</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>Compilers.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>QCMakeFilePathEditor</class>
|
||||||
|
<extends>QLineEdit</extends>
|
||||||
|
<header>QCMakeWidgets.h</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<tabstops>
|
||||||
|
<tabstop>systemVersion</tabstop>
|
||||||
|
<tabstop>systemProcessor</tabstop>
|
||||||
|
<tabstop>CrossCompilers</tabstop>
|
||||||
|
<tabstop>crossFindRoot</tabstop>
|
||||||
|
<tabstop>crossProgramMode</tabstop>
|
||||||
|
<tabstop>crossLibraryMode</tabstop>
|
||||||
|
<tabstop>crossIncludeMode</tabstop>
|
||||||
|
</tabstops>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -0,0 +1,509 @@
|
||||||
|
|
||||||
|
#include "FirstConfigure.h"
|
||||||
|
#include "Compilers.h"
|
||||||
|
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QRadioButton>
|
||||||
|
#include <QComboBox>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
|
||||||
|
StartCompilerSetup::StartCompilerSetup(QWidget* p)
|
||||||
|
: QWizardPage(p)
|
||||||
|
{
|
||||||
|
QVBoxLayout* l = new QVBoxLayout(this);
|
||||||
|
l->addWidget(new QLabel(tr("Specify the generator for this project")));
|
||||||
|
this->GeneratorOptions = new QComboBox(this);
|
||||||
|
l->addWidget(this->GeneratorOptions);
|
||||||
|
l->addSpacing(6);
|
||||||
|
|
||||||
|
this->CompilerSetupOptions[0] = new QRadioButton("Use default native compilers", this);
|
||||||
|
this->CompilerSetupOptions[1] = new QRadioButton("Specify native compilers", this);
|
||||||
|
this->CompilerSetupOptions[2] = new QRadioButton("Specify toolchain file for cross-compiling", this);
|
||||||
|
this->CompilerSetupOptions[3] = new QRadioButton("Specify options for cross-compiling", this);
|
||||||
|
l->addWidget(this->CompilerSetupOptions[0]);
|
||||||
|
l->addWidget(this->CompilerSetupOptions[1]);
|
||||||
|
l->addWidget(this->CompilerSetupOptions[2]);
|
||||||
|
l->addWidget(this->CompilerSetupOptions[3]);
|
||||||
|
|
||||||
|
this->CompilerSetupOptions[0]->setChecked(true);
|
||||||
|
|
||||||
|
QObject::connect(this->CompilerSetupOptions[0], SIGNAL(toggled(bool)),
|
||||||
|
this, SLOT(onSelectionChanged(bool)));
|
||||||
|
QObject::connect(this->CompilerSetupOptions[1], SIGNAL(toggled(bool)),
|
||||||
|
this, SLOT(onSelectionChanged(bool)));
|
||||||
|
QObject::connect(this->CompilerSetupOptions[2], SIGNAL(toggled(bool)),
|
||||||
|
this, SLOT(onSelectionChanged(bool)));
|
||||||
|
QObject::connect(this->CompilerSetupOptions[3], SIGNAL(toggled(bool)),
|
||||||
|
this, SLOT(onSelectionChanged(bool)));
|
||||||
|
}
|
||||||
|
|
||||||
|
StartCompilerSetup::~StartCompilerSetup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartCompilerSetup::setGenerators(const QStringList& gens)
|
||||||
|
{
|
||||||
|
this->GeneratorOptions->clear();
|
||||||
|
this->GeneratorOptions->addItems(gens);
|
||||||
|
};
|
||||||
|
|
||||||
|
void StartCompilerSetup::setCurrentGenerator(const QString& gen)
|
||||||
|
{
|
||||||
|
int idx = this->GeneratorOptions->findText(gen);
|
||||||
|
if(idx != -1)
|
||||||
|
{
|
||||||
|
this->GeneratorOptions->setCurrentIndex(idx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString StartCompilerSetup::getGenerator() const
|
||||||
|
{
|
||||||
|
return this->GeneratorOptions->currentText();
|
||||||
|
};
|
||||||
|
|
||||||
|
bool StartCompilerSetup::defaultSetup() const
|
||||||
|
{
|
||||||
|
return this->CompilerSetupOptions[0]->isChecked();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StartCompilerSetup::compilerSetup() const
|
||||||
|
{
|
||||||
|
return this->CompilerSetupOptions[1]->isChecked();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StartCompilerSetup::crossCompilerToolChainFile() const
|
||||||
|
{
|
||||||
|
return this->CompilerSetupOptions[2]->isChecked();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StartCompilerSetup::crossCompilerSetup() const
|
||||||
|
{
|
||||||
|
return this->CompilerSetupOptions[3]->isChecked();
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartCompilerSetup::onSelectionChanged(bool on)
|
||||||
|
{
|
||||||
|
if(on)
|
||||||
|
selectionChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
int StartCompilerSetup::nextId() const
|
||||||
|
{
|
||||||
|
if(compilerSetup())
|
||||||
|
return NativeSetup;
|
||||||
|
if(crossCompilerSetup())
|
||||||
|
return CrossSetup;
|
||||||
|
if(crossCompilerToolChainFile())
|
||||||
|
return ToolchainSetup;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
NativeCompilerSetup::NativeCompilerSetup(QWidget* p)
|
||||||
|
: QWizardPage(p)
|
||||||
|
{
|
||||||
|
QVBoxLayout* l = new QVBoxLayout(this);
|
||||||
|
QWidget* c = new QWidget(this);
|
||||||
|
l->addWidget(c);
|
||||||
|
this->setupUi(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
NativeCompilerSetup::~NativeCompilerSetup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NativeCompilerSetup::getCCompiler() const
|
||||||
|
{
|
||||||
|
return this->CCompiler->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void NativeCompilerSetup::setCCompiler(const QString& s)
|
||||||
|
{
|
||||||
|
this->CCompiler->setText(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NativeCompilerSetup::getCXXCompiler() const
|
||||||
|
{
|
||||||
|
return this->CXXCompiler->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void NativeCompilerSetup::setCXXCompiler(const QString& s)
|
||||||
|
{
|
||||||
|
this->CXXCompiler->setText(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString NativeCompilerSetup::getFortranCompiler() const
|
||||||
|
{
|
||||||
|
return this->FortranCompiler->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void NativeCompilerSetup::setFortranCompiler(const QString& s)
|
||||||
|
{
|
||||||
|
this->FortranCompiler->setText(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CrossCompilerSetup::CrossCompilerSetup(QWidget* p)
|
||||||
|
: QWizardPage(p)
|
||||||
|
{
|
||||||
|
this->setupUi(this);
|
||||||
|
QWidget::setTabOrder(systemName, systemVersion);
|
||||||
|
QWidget::setTabOrder(systemVersion, systemProcessor);
|
||||||
|
QWidget::setTabOrder(systemProcessor, CrossCompilers->CCompiler);
|
||||||
|
QWidget::setTabOrder(CrossCompilers->CCompiler, CrossCompilers->CXXCompiler);
|
||||||
|
QWidget::setTabOrder(CrossCompilers->CXXCompiler, CrossCompilers->FortranCompiler);
|
||||||
|
QWidget::setTabOrder(CrossCompilers->FortranCompiler, crossFindRoot);
|
||||||
|
QWidget::setTabOrder(crossFindRoot, crossProgramMode);
|
||||||
|
QWidget::setTabOrder(crossProgramMode, crossLibraryMode);
|
||||||
|
QWidget::setTabOrder(crossLibraryMode, crossIncludeMode);
|
||||||
|
|
||||||
|
// fill in combo boxes
|
||||||
|
QStringList modes;
|
||||||
|
modes << "Search in Target Root, then native system";
|
||||||
|
modes << "Search only in Target Root";
|
||||||
|
modes << "Search only in native system";
|
||||||
|
crossProgramMode->addItems(modes);
|
||||||
|
crossLibraryMode->addItems(modes);
|
||||||
|
crossIncludeMode->addItems(modes);
|
||||||
|
crossProgramMode->setCurrentIndex(2);
|
||||||
|
crossLibraryMode->setCurrentIndex(1);
|
||||||
|
crossIncludeMode->setCurrentIndex(1);
|
||||||
|
|
||||||
|
this->registerField("systemName*", this->systemName);
|
||||||
|
}
|
||||||
|
|
||||||
|
CrossCompilerSetup::~CrossCompilerSetup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CrossCompilerSetup::getCCompiler() const
|
||||||
|
{
|
||||||
|
return this->CrossCompilers->CCompiler->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setCCompiler(const QString& s)
|
||||||
|
{
|
||||||
|
this->CrossCompilers->CCompiler->setText(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CrossCompilerSetup::getCXXCompiler() const
|
||||||
|
{
|
||||||
|
return this->CrossCompilers->CXXCompiler->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setCXXCompiler(const QString& s)
|
||||||
|
{
|
||||||
|
this->CrossCompilers->CXXCompiler->setText(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CrossCompilerSetup::getFortranCompiler() const
|
||||||
|
{
|
||||||
|
return this->CrossCompilers->FortranCompiler->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setFortranCompiler(const QString& s)
|
||||||
|
{
|
||||||
|
this->CrossCompilers->FortranCompiler->setText(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CrossCompilerSetup::getSystem() const
|
||||||
|
{
|
||||||
|
return this->systemName->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setSystem(const QString& t)
|
||||||
|
{
|
||||||
|
this->systemName->setText(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString CrossCompilerSetup::getVersion() const
|
||||||
|
{
|
||||||
|
return this->systemVersion->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setVersion(const QString& t)
|
||||||
|
{
|
||||||
|
this->systemVersion->setText(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString CrossCompilerSetup::getProcessor() const
|
||||||
|
{
|
||||||
|
return this->systemProcessor->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setProcessor(const QString& t)
|
||||||
|
{
|
||||||
|
this->systemProcessor->setText(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString CrossCompilerSetup::getFindRoot() const
|
||||||
|
{
|
||||||
|
return this->crossFindRoot->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setFindRoot(const QString& t)
|
||||||
|
{
|
||||||
|
return this->crossFindRoot->setText(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
int CrossCompilerSetup::getProgramMode() const
|
||||||
|
{
|
||||||
|
return this->crossProgramMode->currentIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
int CrossCompilerSetup::getLibraryMode() const
|
||||||
|
{
|
||||||
|
return this->crossLibraryMode->currentIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
int CrossCompilerSetup::getIncludeMode() const
|
||||||
|
{
|
||||||
|
return this->crossIncludeMode->currentIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setProgramMode(int m)
|
||||||
|
{
|
||||||
|
this->crossProgramMode->setCurrentIndex(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setLibraryMode(int m)
|
||||||
|
{
|
||||||
|
this->crossLibraryMode->setCurrentIndex(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CrossCompilerSetup::setIncludeMode(int m)
|
||||||
|
{
|
||||||
|
this->crossIncludeMode->setCurrentIndex(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
ToolchainCompilerSetup::ToolchainCompilerSetup(QWidget* p)
|
||||||
|
: QWizardPage(p)
|
||||||
|
{
|
||||||
|
QVBoxLayout* l = new QVBoxLayout(this);
|
||||||
|
l->addWidget(new QLabel(tr("Specify the Toolchain file")));
|
||||||
|
this->ToolchainFile = new QCMakeFilePathEditor(this);
|
||||||
|
l->addWidget(this->ToolchainFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
ToolchainCompilerSetup::~ToolchainCompilerSetup()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QString ToolchainCompilerSetup::toolchainFile() const
|
||||||
|
{
|
||||||
|
return this->ToolchainFile->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ToolchainCompilerSetup::setToolchainFile(const QString& t)
|
||||||
|
{
|
||||||
|
this->ToolchainFile->setText(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FirstConfigure::FirstConfigure()
|
||||||
|
{
|
||||||
|
//this->setOption(QWizard::HaveFinishButtonOnEarlyPages, true);
|
||||||
|
this->mStartCompilerSetupPage = new StartCompilerSetup(this);
|
||||||
|
this->setPage(Start, this->mStartCompilerSetupPage);
|
||||||
|
QObject::connect(this->mStartCompilerSetupPage, SIGNAL(selectionChanged()),
|
||||||
|
this, SLOT(restart()));
|
||||||
|
|
||||||
|
this->mNativeCompilerSetupPage = new NativeCompilerSetup(this);
|
||||||
|
this->setPage(NativeSetup, this->mNativeCompilerSetupPage);
|
||||||
|
|
||||||
|
this->mCrossCompilerSetupPage = new CrossCompilerSetup(this);
|
||||||
|
this->setPage(CrossSetup, this->mCrossCompilerSetupPage);
|
||||||
|
|
||||||
|
this->mToolchainCompilerSetupPage = new ToolchainCompilerSetup(this);
|
||||||
|
this->setPage(ToolchainSetup, this->mToolchainCompilerSetupPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
FirstConfigure::~FirstConfigure()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void FirstConfigure::setGenerators(const QStringList& gens)
|
||||||
|
{
|
||||||
|
this->mStartCompilerSetupPage->setGenerators(gens);
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getGenerator() const
|
||||||
|
{
|
||||||
|
return this->mStartCompilerSetupPage->getGenerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FirstConfigure::loadFromSettings()
|
||||||
|
{
|
||||||
|
QSettings settings;
|
||||||
|
// restore generator
|
||||||
|
settings.beginGroup("Settings/StartPath");
|
||||||
|
QString lastGen = settings.value("LastGenerator").toString();
|
||||||
|
this->mStartCompilerSetupPage->setCurrentGenerator(lastGen);
|
||||||
|
settings.endGroup();
|
||||||
|
|
||||||
|
// restore compiler setup
|
||||||
|
settings.beginGroup("Settings/Compiler");
|
||||||
|
this->mNativeCompilerSetupPage->setCCompiler(settings.value("CCompiler").toString());
|
||||||
|
this->mNativeCompilerSetupPage->setCXXCompiler(settings.value("CXXCompiler").toString());
|
||||||
|
this->mNativeCompilerSetupPage->setFortranCompiler(settings.value("FortranCompiler").toString());
|
||||||
|
settings.endGroup();
|
||||||
|
|
||||||
|
// restore cross compiler setup
|
||||||
|
settings.beginGroup("Settings/CrossCompiler");
|
||||||
|
this->mCrossCompilerSetupPage->setCCompiler(settings.value("CCompiler").toString());
|
||||||
|
this->mCrossCompilerSetupPage->setCXXCompiler(settings.value("CXXCompiler").toString());
|
||||||
|
this->mCrossCompilerSetupPage->setFortranCompiler(settings.value("FortranCompiler").toString());
|
||||||
|
this->mToolchainCompilerSetupPage->setToolchainFile(settings.value("ToolChainFile").toString());
|
||||||
|
this->mCrossCompilerSetupPage->setSystem(settings.value("SystemName").toString());
|
||||||
|
this->mCrossCompilerSetupPage->setVersion(settings.value("SystemVersion").toString());
|
||||||
|
this->mCrossCompilerSetupPage->setProcessor(settings.value("SystemProcessor").toString());
|
||||||
|
this->mCrossCompilerSetupPage->setFindRoot(settings.value("FindRoot").toString());
|
||||||
|
this->mCrossCompilerSetupPage->setProgramMode(settings.value("ProgramMode", 0).toInt());
|
||||||
|
this->mCrossCompilerSetupPage->setLibraryMode(settings.value("LibraryMode", 0).toInt());
|
||||||
|
this->mCrossCompilerSetupPage->setIncludeMode(settings.value("IncludeMode", 0).toInt());
|
||||||
|
settings.endGroup();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FirstConfigure::saveToSettings()
|
||||||
|
{
|
||||||
|
QSettings settings;
|
||||||
|
|
||||||
|
// save generator
|
||||||
|
settings.beginGroup("Settings/StartPath");
|
||||||
|
QString lastGen = this->mStartCompilerSetupPage->getGenerator();
|
||||||
|
settings.setValue("LastGenerator", lastGen);
|
||||||
|
settings.endGroup();
|
||||||
|
|
||||||
|
// save compiler setup
|
||||||
|
settings.beginGroup("Settings/Compiler");
|
||||||
|
settings.setValue("CCompiler", this->mNativeCompilerSetupPage->getCCompiler());
|
||||||
|
settings.setValue("CXXCompiler", this->mNativeCompilerSetupPage->getCXXCompiler());
|
||||||
|
settings.setValue("FortranCompiler", this->mNativeCompilerSetupPage->getFortranCompiler());
|
||||||
|
settings.endGroup();
|
||||||
|
|
||||||
|
// save cross compiler setup
|
||||||
|
settings.beginGroup("Settings/CrossCompiler");
|
||||||
|
settings.setValue("CCompiler", this->mCrossCompilerSetupPage->getCCompiler());
|
||||||
|
settings.setValue("CXXCompiler", this->mCrossCompilerSetupPage->getCXXCompiler());
|
||||||
|
settings.setValue("FortranCompiler", this->mCrossCompilerSetupPage->getFortranCompiler());
|
||||||
|
settings.setValue("ToolChainFile", this->getCrossCompilerToolChainFile());
|
||||||
|
settings.setValue("SystemName", this->mCrossCompilerSetupPage->getSystem());
|
||||||
|
settings.setValue("SystemVersion", this->mCrossCompilerSetupPage->getVersion());
|
||||||
|
settings.setValue("SystemProcessor", this->mCrossCompilerSetupPage->getProcessor());
|
||||||
|
settings.setValue("FindRoot", this->mCrossCompilerSetupPage->getFindRoot());
|
||||||
|
settings.setValue("ProgramMode", this->mCrossCompilerSetupPage->getProgramMode());
|
||||||
|
settings.setValue("LibraryMode", this->mCrossCompilerSetupPage->getLibraryMode());
|
||||||
|
settings.setValue("IncludeMode", this->mCrossCompilerSetupPage->getIncludeMode());
|
||||||
|
settings.endGroup();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FirstConfigure::defaultSetup() const
|
||||||
|
{
|
||||||
|
return this->mStartCompilerSetupPage->defaultSetup();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FirstConfigure::compilerSetup() const
|
||||||
|
{
|
||||||
|
return this->mStartCompilerSetupPage->compilerSetup();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FirstConfigure::crossCompilerSetup() const
|
||||||
|
{
|
||||||
|
return this->mStartCompilerSetupPage->crossCompilerSetup();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FirstConfigure::crossCompilerToolChainFile() const
|
||||||
|
{
|
||||||
|
return this->mStartCompilerSetupPage->crossCompilerToolChainFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getCrossCompilerToolChainFile() const
|
||||||
|
{
|
||||||
|
return this->mToolchainCompilerSetupPage->toolchainFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getSystemName() const
|
||||||
|
{
|
||||||
|
return this->mCrossCompilerSetupPage->getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getCCompiler() const
|
||||||
|
{
|
||||||
|
if(this->compilerSetup())
|
||||||
|
{
|
||||||
|
return this->mNativeCompilerSetupPage->getCCompiler();
|
||||||
|
}
|
||||||
|
else if(this->crossCompilerSetup())
|
||||||
|
{
|
||||||
|
return this->mCrossCompilerSetupPage->getCCompiler();
|
||||||
|
}
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getCXXCompiler() const
|
||||||
|
{
|
||||||
|
if(this->compilerSetup())
|
||||||
|
{
|
||||||
|
return this->mNativeCompilerSetupPage->getCXXCompiler();
|
||||||
|
}
|
||||||
|
else if(this->crossCompilerSetup())
|
||||||
|
{
|
||||||
|
return this->mCrossCompilerSetupPage->getCXXCompiler();
|
||||||
|
}
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getFortranCompiler() const
|
||||||
|
{
|
||||||
|
if(this->compilerSetup())
|
||||||
|
{
|
||||||
|
return this->mNativeCompilerSetupPage->getFortranCompiler();
|
||||||
|
}
|
||||||
|
else if(this->crossCompilerSetup())
|
||||||
|
{
|
||||||
|
return this->mCrossCompilerSetupPage->getFortranCompiler();
|
||||||
|
}
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QString FirstConfigure::getSystemVersion() const
|
||||||
|
{
|
||||||
|
return this->mCrossCompilerSetupPage->getVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getSystemProcessor() const
|
||||||
|
{
|
||||||
|
return this->mCrossCompilerSetupPage->getProcessor();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getCrossRoot() const
|
||||||
|
{
|
||||||
|
return this->mCrossCompilerSetupPage->getFindRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
const QString CrossModes[] =
|
||||||
|
{
|
||||||
|
"BOTH",
|
||||||
|
"ONLY",
|
||||||
|
"NEVER"
|
||||||
|
};
|
||||||
|
|
||||||
|
QString FirstConfigure::getCrossProgramMode() const
|
||||||
|
{
|
||||||
|
return CrossModes[this->mCrossCompilerSetupPage->getProgramMode()];
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getCrossLibraryMode() const
|
||||||
|
{
|
||||||
|
return CrossModes[this->mCrossCompilerSetupPage->getLibraryMode()];
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FirstConfigure::getCrossIncludeMode() const
|
||||||
|
{
|
||||||
|
return CrossModes[this->mCrossCompilerSetupPage->getIncludeMode()];
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,177 @@
|
||||||
|
|
||||||
|
#ifndef FirstConfigure_h
|
||||||
|
#define FirstConfigure_h
|
||||||
|
|
||||||
|
#include <QWizard>
|
||||||
|
#include <QWizardPage>
|
||||||
|
#include "ui_Compilers.h"
|
||||||
|
#include "ui_CrossCompiler.h"
|
||||||
|
|
||||||
|
class QRadioButton;
|
||||||
|
class QComboBox;
|
||||||
|
|
||||||
|
//! the wizard pages we'll use for the first configure of a build
|
||||||
|
enum FirstConfigurePages
|
||||||
|
{
|
||||||
|
Start,
|
||||||
|
NativeSetup,
|
||||||
|
ToolchainSetup,
|
||||||
|
CrossSetup,
|
||||||
|
Done
|
||||||
|
};
|
||||||
|
|
||||||
|
//! the first page that gives basic options for what compilers setup to choose from
|
||||||
|
class StartCompilerSetup : public QWizardPage
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
StartCompilerSetup(QWidget* p);
|
||||||
|
~StartCompilerSetup();
|
||||||
|
void setGenerators(const QStringList& gens);
|
||||||
|
void setCurrentGenerator(const QString& gen);
|
||||||
|
QString getGenerator() const;
|
||||||
|
|
||||||
|
bool defaultSetup() const;
|
||||||
|
bool compilerSetup() const;
|
||||||
|
bool crossCompilerSetup() const;
|
||||||
|
bool crossCompilerToolChainFile() const;
|
||||||
|
|
||||||
|
int nextId() const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void selectionChanged();
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void onSelectionChanged(bool);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
QComboBox* GeneratorOptions;
|
||||||
|
QRadioButton* CompilerSetupOptions[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
//! the page that gives basic options for native compilers
|
||||||
|
class NativeCompilerSetup : public QWizardPage, protected Ui::Compilers
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
NativeCompilerSetup(QWidget* p);
|
||||||
|
~NativeCompilerSetup();
|
||||||
|
|
||||||
|
QString getCCompiler() const;
|
||||||
|
void setCCompiler(const QString&);
|
||||||
|
|
||||||
|
QString getCXXCompiler() const;
|
||||||
|
void setCXXCompiler(const QString&);
|
||||||
|
|
||||||
|
QString getFortranCompiler() const;
|
||||||
|
void setFortranCompiler(const QString&);
|
||||||
|
|
||||||
|
int nextId() const { return -1; }
|
||||||
|
};
|
||||||
|
|
||||||
|
//! the page that gives options for cross compilers
|
||||||
|
class CrossCompilerSetup : public QWizardPage, protected Ui::CrossCompiler
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
CrossCompilerSetup(QWidget* p);
|
||||||
|
~CrossCompilerSetup();
|
||||||
|
|
||||||
|
QString getSystem() const;
|
||||||
|
void setSystem(const QString&);
|
||||||
|
|
||||||
|
QString getVersion() const;
|
||||||
|
void setVersion(const QString&);
|
||||||
|
|
||||||
|
QString getProcessor() const;
|
||||||
|
void setProcessor(const QString&);
|
||||||
|
|
||||||
|
QString getCCompiler() const;
|
||||||
|
void setCCompiler(const QString&);
|
||||||
|
|
||||||
|
QString getCXXCompiler() const;
|
||||||
|
void setCXXCompiler(const QString&);
|
||||||
|
|
||||||
|
QString getFortranCompiler() const;
|
||||||
|
void setFortranCompiler(const QString&);
|
||||||
|
|
||||||
|
QString getFindRoot() const;
|
||||||
|
void setFindRoot(const QString&);
|
||||||
|
|
||||||
|
enum CrossMode
|
||||||
|
{
|
||||||
|
BOTH,
|
||||||
|
ONLY,
|
||||||
|
NEVER
|
||||||
|
};
|
||||||
|
|
||||||
|
int getProgramMode() const;
|
||||||
|
void setProgramMode(int);
|
||||||
|
int getLibraryMode() const;
|
||||||
|
void setLibraryMode(int);
|
||||||
|
int getIncludeMode() const;
|
||||||
|
void setIncludeMode(int);
|
||||||
|
|
||||||
|
int nextId() const { return -1; }
|
||||||
|
};
|
||||||
|
|
||||||
|
//! the page that gives options for a toolchain file
|
||||||
|
class ToolchainCompilerSetup : public QWizardPage
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ToolchainCompilerSetup(QWidget* p);
|
||||||
|
~ToolchainCompilerSetup();
|
||||||
|
|
||||||
|
QString toolchainFile() const;
|
||||||
|
void setToolchainFile(const QString&);
|
||||||
|
|
||||||
|
int nextId() const { return -1; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
QCMakeFilePathEditor* ToolchainFile;
|
||||||
|
};
|
||||||
|
|
||||||
|
//! the wizard with the pages
|
||||||
|
class FirstConfigure : public QWizard
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
FirstConfigure();
|
||||||
|
~FirstConfigure();
|
||||||
|
|
||||||
|
void setGenerators(const QStringList& gens);
|
||||||
|
QString getGenerator() const;
|
||||||
|
|
||||||
|
bool defaultSetup() const;
|
||||||
|
bool compilerSetup() const;
|
||||||
|
bool crossCompilerSetup() const;
|
||||||
|
bool crossCompilerToolChainFile() const;
|
||||||
|
|
||||||
|
QString getCCompiler() const;
|
||||||
|
QString getCXXCompiler() const;
|
||||||
|
QString getFortranCompiler() const;
|
||||||
|
|
||||||
|
QString getSystemName() const;
|
||||||
|
QString getSystemVersion() const;
|
||||||
|
QString getSystemProcessor() const;
|
||||||
|
QString getCrossRoot() const;
|
||||||
|
QString getCrossProgramMode() const;
|
||||||
|
QString getCrossLibraryMode() const;
|
||||||
|
QString getCrossIncludeMode() const;
|
||||||
|
|
||||||
|
QString getCrossCompilerToolChainFile() const;
|
||||||
|
|
||||||
|
void loadFromSettings();
|
||||||
|
void saveToSettings();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
StartCompilerSetup* mStartCompilerSetupPage;
|
||||||
|
NativeCompilerSetup* mNativeCompilerSetupPage;
|
||||||
|
CrossCompilerSetup* mCrossCompilerSetupPage;
|
||||||
|
ToolchainCompilerSetup* mToolchainCompilerSetupPage;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FirstConfigure_h
|
||||||
|
|
Loading…
Reference in New Issue