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
|
||||
AddCacheEntry.cxx
|
||||
AddCacheEntry.h
|
||||
CMakeFirstConfigure.cxx
|
||||
CMakeFirstConfigure.h
|
||||
CMakeSetup.cxx
|
||||
CMakeSetupDialog.cxx
|
||||
CMakeSetupDialog.h
|
||||
FirstConfigure.cxx
|
||||
FirstConfigure.h
|
||||
QCMake.cxx
|
||||
QCMake.h
|
||||
QCMakeCacheView.cxx
|
||||
|
@ -31,15 +31,17 @@ ELSE(NOT QT4_FOUND)
|
|||
QMacInstallDialog.h
|
||||
)
|
||||
QT4_WRAP_UI(UI_SRCS
|
||||
CMakeFirstConfigure.ui
|
||||
CMakeSetupDialog.ui
|
||||
Compilers.ui
|
||||
CrossCompiler.ui
|
||||
AddCacheEntry.ui
|
||||
MacInstallDialog.ui
|
||||
)
|
||||
QT4_WRAP_CPP(MOC_SRCS
|
||||
AddCacheEntry.h
|
||||
CMakeFirstConfigure.h
|
||||
Compilers.h
|
||||
CMakeSetupDialog.h
|
||||
FirstConfigure.h
|
||||
QCMake.h
|
||||
QCMakeCacheView.h
|
||||
QCMakeWidgets.h
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#include "QCMake.h"
|
||||
#include "QCMakeCacheView.h"
|
||||
#include "AddCacheEntry.h"
|
||||
#include "CMakeFirstConfigure.h"
|
||||
#include "FirstConfigure.h"
|
||||
|
||||
QCMakeThread::QCMakeThread(QObject* p)
|
||||
: QThread(p), CMakeInstance(NULL)
|
||||
|
@ -552,7 +552,7 @@ void CMakeSetupDialog::setEnabledState(bool enabled)
|
|||
|
||||
bool CMakeSetupDialog::setupFirstConfigure()
|
||||
{
|
||||
CMakeFirstConfigure dialog;
|
||||
FirstConfigure dialog;
|
||||
|
||||
// initialize dialog and restore saved settings
|
||||
|
||||
|
@ -593,45 +593,42 @@ bool CMakeSetupDialog::setupFirstConfigure()
|
|||
}
|
||||
else if(dialog.crossCompilerSetup())
|
||||
{
|
||||
QString toolchainFile = dialog.crossCompilerToolChainFile();
|
||||
if(!toolchainFile.isEmpty())
|
||||
QString fortranCompiler = dialog.getFortranCompiler();
|
||||
if(!fortranCompiler.isEmpty())
|
||||
{
|
||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_TOOLCHAIN_FILE",
|
||||
"Cross Compile ToolChain File", toolchainFile, false);
|
||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_Fortran_COMPILER",
|
||||
"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();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE",
|
||||
"CMake Find Include Mode", mode, false);
|
||||
mode = dialog.getCrossLibraryMode();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY",
|
||||
"CMake Find Library Mode", mode, false);
|
||||
mode = dialog.getCrossProgramMode();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM",
|
||||
"CMake Find Program Mode", mode, false);
|
||||
QString mode = dialog.getCrossIncludeMode();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_INCLUDE",
|
||||
"CMake Find Include Mode", mode, false);
|
||||
mode = dialog.getCrossLibraryMode();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_LIBRARY",
|
||||
"CMake Find Library Mode", mode, false);
|
||||
mode = dialog.getCrossProgramMode();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_FIND_ROOT_PATH_MODE_PROGRAM",
|
||||
"CMake Find Program Mode", mode, false);
|
||||
|
||||
QString rootPath = dialog.getCrossRoot();
|
||||
m->insertProperty(QCMakeProperty::PATH, "CMAKE_FIND_ROOT_PATH",
|
||||
"CMake Find Root Path", rootPath, false);
|
||||
QString rootPath = dialog.getCrossRoot();
|
||||
m->insertProperty(QCMakeProperty::PATH, "CMAKE_FIND_ROOT_PATH",
|
||||
"CMake Find Root Path", rootPath, false);
|
||||
|
||||
QString systemName = dialog.getSystemName();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_SYSTEM_NAME",
|
||||
"CMake System Name", systemName, false);
|
||||
QString cxxCompiler = dialog.getCXXCompiler();
|
||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_CXX_COMPILER",
|
||||
"CXX compiler.", cxxCompiler, false);
|
||||
QString cCompiler = dialog.getCCompiler();
|
||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_C_COMPILER",
|
||||
"C compiler.", cCompiler, false);
|
||||
}
|
||||
QString systemName = dialog.getSystemName();
|
||||
m->insertProperty(QCMakeProperty::STRING, "CMAKE_SYSTEM_NAME",
|
||||
"CMake System Name", systemName, false);
|
||||
QString cxxCompiler = dialog.getCXXCompiler();
|
||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_CXX_COMPILER",
|
||||
"CXX compiler.", cxxCompiler, false);
|
||||
QString cCompiler = dialog.getCCompiler();
|
||||
m->insertProperty(QCMakeProperty::FILEPATH, "CMAKE_C_COMPILER",
|
||||
"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;
|
||||
}
|
||||
|
|
|
@ -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