Merge remote-tracking branch 'origin/2.5'
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
BIN
doc/images/qtcreator-disable-steps.png
Normal file
After Width: | Height: | Size: 470 B |
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 660 B |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 12 KiB |
@@ -42,9 +42,6 @@
|
||||
the final installation file.
|
||||
|
||||
You specify build settings in the \gui Projects mode.
|
||||
|
||||
\image qtcreator-projectpane.png
|
||||
|
||||
To add a new build configuration, click \gui Add and select the type of
|
||||
configuration you would like to add. You can add as many build
|
||||
configurations as you need.
|
||||
@@ -53,6 +50,8 @@
|
||||
|
||||
\section1 Editing Build Configurations
|
||||
|
||||
\image qtcreator-projectpane.png
|
||||
|
||||
To edit a build configuration:
|
||||
|
||||
\list 1
|
||||
@@ -150,7 +149,7 @@
|
||||
|
||||
\image qtcreator-build-steps.png "Build steps"
|
||||
|
||||
To override the shell command that \QC constructs by default, remove
|
||||
To override the shell command that \QC constructs by default, disable or remove
|
||||
the build step and add a custom build step that specifies another shell
|
||||
command.
|
||||
|
||||
@@ -159,8 +158,9 @@
|
||||
To add custom steps to the build settings, select \gui {Add Build Step >
|
||||
Custom Process Step}.
|
||||
|
||||
By default, custom steps are disabled. To activate a custom step, select
|
||||
the \gui{Enable custom process step} check-box.
|
||||
By default, custom steps are enabled. To disable a custom step, select
|
||||
the \inlineimage qtcreator-disable-steps.png
|
||||
(\gui Disable) button.
|
||||
|
||||
\image qtcreator-build-steps-custom.png "Custom Process Step"
|
||||
|
||||
@@ -179,14 +179,14 @@
|
||||
\o To add a clean step using make or a custom process, click
|
||||
\gui{Add Clean Step} and select the type of step you want to add.
|
||||
|
||||
By default, custom steps are disabled. To activate a custom step,
|
||||
select the \gui{Enable custom process step} check-box.
|
||||
By default, custom steps are enabled. To disable a custom step,
|
||||
select the \gui Disable button.
|
||||
|
||||
\o To remove a clean step, click \gui{Remove Item}.
|
||||
|
||||
\o To change the order of steps, click
|
||||
\inlineimage qtcreator-movestep.png
|
||||
.
|
||||
(\gui {Move Up} and \gui {Move Down}).
|
||||
\endlist
|
||||
|
||||
\section1 Build Environment
|
||||
@@ -214,4 +214,13 @@
|
||||
compilers and tools need. Therefore, the environment is never totally empty,
|
||||
even after you clear it.
|
||||
|
||||
\section1 Related Topics
|
||||
|
||||
\list
|
||||
|
||||
\o \l{Adding Qt Versions}
|
||||
\o \l{Adding Tool Chains}
|
||||
|
||||
\endlist
|
||||
|
||||
*/
|
||||
|
@@ -177,6 +177,7 @@ Item {
|
||||
Row {
|
||||
x: 6
|
||||
spacing: 4
|
||||
visible: !defaultSession
|
||||
|
||||
Image { source: "images/icons/clone.png" }
|
||||
LinkedText {
|
||||
|
@@ -234,10 +234,6 @@ int main(int argc, char **argv)
|
||||
QtSystemExceptionHandler systemExceptionHandler;
|
||||
#endif
|
||||
|
||||
QTranslator translator;
|
||||
QTranslator qtTranslator;
|
||||
QString locale = QLocale::system().name();
|
||||
|
||||
// Manually determine -settingspath command line option
|
||||
// We can't use the regular way of the plugin manager, because that needs to parse pluginspecs
|
||||
// but the settings path can influence which plugins are enabled
|
||||
@@ -273,9 +269,20 @@ int main(int argc, char **argv)
|
||||
pluginManager.setGlobalSettings(globalSettings);
|
||||
pluginManager.setSettings(settings);
|
||||
|
||||
locale = settings->value("General/OverrideLanguage", locale).toString();
|
||||
QTranslator translator;
|
||||
QTranslator qtTranslator;
|
||||
QStringList uiLanguages;
|
||||
#if QT_VERSION >= 0x040800
|
||||
uiLanguages = QLocale::system().uiLanguages();
|
||||
#else
|
||||
uiLanguages << QLocale::system().name();
|
||||
#endif
|
||||
QString overrideLanguage = settings->value("General/OverrideLanguage").toString();
|
||||
if (!overrideLanguage.isEmpty())
|
||||
uiLanguages.prepend(overrideLanguage);
|
||||
const QString &creatorTrPath = QCoreApplication::applicationDirPath()
|
||||
+ QLatin1String(SHARE_PATH "/translations");
|
||||
foreach (const QString &locale, uiLanguages) {
|
||||
if (translator.load(QLatin1String("qtcreator_") + locale, creatorTrPath)) {
|
||||
const QString &qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
|
||||
const QString &qtTrFile = QLatin1String("qt_") + locale;
|
||||
@@ -284,8 +291,15 @@ int main(int argc, char **argv)
|
||||
app.installTranslator(&translator);
|
||||
app.installTranslator(&qtTranslator);
|
||||
app.setProperty("qtc_locale", locale);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
translator.load(QString()); // unload()
|
||||
} else if (locale == QLatin1String("C") /* overrideLanguage == "English" */) {
|
||||
// use built-in
|
||||
break;
|
||||
} else if (locale.startsWith(QLatin1String("en")) /* "English" is built-in */) {
|
||||
// use built-in
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
4
src/libs/3rdparty/cplusplus/Parser.cpp
vendored
@@ -3638,11 +3638,9 @@ bool Parser::parseBuiltinTypeSpecifier(SpecifierListAST *&node)
|
||||
DecltypeSpecifierAST *ast = new (_pool) DecltypeSpecifierAST;
|
||||
ast->decltype_token = consumeToken();
|
||||
match(T_LPAREN, &ast->lparen_token);
|
||||
if (parseExpression(ast->expression)) {
|
||||
if (parseExpression(ast->expression))
|
||||
match(T_RPAREN, &ast->rparen_token);
|
||||
node = new (_pool) SpecifierListAST(ast);
|
||||
return true;
|
||||
}
|
||||
skipUntilDeclaration();
|
||||
return true;
|
||||
} else if (lookAtBuiltinTypeSpecifier()) {
|
||||
|
@@ -95,14 +95,11 @@ void FileNameValidatingLineEdit::setForceFirstCapitalLetter(bool b)
|
||||
|
||||
/* Validate a file base name, check for forbidden characters/strings. */
|
||||
|
||||
#ifdef Q_OS_WIN
|
||||
# define SLASHES "/\\"
|
||||
#else
|
||||
# define SLASHES "/"
|
||||
#endif
|
||||
|
||||
static const char notAllowedCharsSubDir[] = "~!?:&*\"|#%<>$\"'();`' ";
|
||||
static const char notAllowedCharsNoSubDir[] = "~!?:&*\"|#%<>$\"'();`' "SLASHES;
|
||||
#define SLASHES "/\\"
|
||||
|
||||
static const char notAllowedCharsSubDir[] = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' ";
|
||||
static const char notAllowedCharsNoSubDir[] = ",^@=+{}[]~!?:&*\"|#%<>$\"'();`' "SLASHES;
|
||||
|
||||
static const char *notAllowedSubStrings[] = {".."};
|
||||
|
||||
|
@@ -62,7 +62,7 @@ namespace Utils {
|
||||
bool FileUtils::removeRecursively(const QString &filePath, QString *error)
|
||||
{
|
||||
QFileInfo fileInfo(filePath);
|
||||
if (!fileInfo.exists())
|
||||
if (!fileInfo.exists() && !fileInfo.isSymLink())
|
||||
return true;
|
||||
QFile::setPermissions(filePath, fileInfo.permissions() | QFile::WriteUser);
|
||||
if (fileInfo.isDir()) {
|
||||
|
@@ -249,7 +249,7 @@ MakeStepConfigWidget::MakeStepConfigWidget(MakeStep *makeStep)
|
||||
|
||||
// TODO update this list also on rescans of the CMakeLists.txt
|
||||
// TODO shouldn't be accessing project
|
||||
CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject();
|
||||
CMakeProject *pro = static_cast<CMakeProject *>(m_makeStep->target()->project());
|
||||
foreach (const QString& buildTarget, pro->buildTargetTitles()) {
|
||||
QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList);
|
||||
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
||||
@@ -288,7 +288,7 @@ void MakeStepConfigWidget::buildTargetsChanged()
|
||||
{
|
||||
disconnect(m_buildTargetsList, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(itemChanged(QListWidgetItem*)));
|
||||
m_buildTargetsList->clear();
|
||||
CMakeProject *pro = m_makeStep->cmakeBuildConfiguration()->cmakeTarget()->cmakeProject();
|
||||
CMakeProject *pro = static_cast<CMakeProject *>(m_makeStep->target()->project());
|
||||
foreach (const QString& buildTarget, pro->buildTargetTitles()) {
|
||||
QListWidgetItem *item = new QListWidgetItem(buildTarget, m_buildTargetsList);
|
||||
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
||||
@@ -301,6 +301,8 @@ void MakeStepConfigWidget::buildTargetsChanged()
|
||||
void MakeStepConfigWidget::updateDetails()
|
||||
{
|
||||
CMakeBuildConfiguration *bc = m_makeStep->cmakeBuildConfiguration();
|
||||
if (!bc)
|
||||
bc = static_cast<CMakeBuildConfiguration *>(m_makeStep->target()->activeBuildConfiguration());
|
||||
ProjectExplorer::ToolChain *tc = bc->toolChain();
|
||||
if (tc) {
|
||||
QString arguments = Utils::QtcProcess::joinArgs(m_makeStep->m_buildTargets);
|
||||
|
@@ -514,11 +514,13 @@ void CppFindReferences::cancel()
|
||||
void CppFindReferences::openEditor(const Find::SearchResultItem &item)
|
||||
{
|
||||
if (item.path.size() > 0) {
|
||||
TextEditor::BaseTextEditorWidget::openEditorAt(item.path.first(), item.lineNumber, item.textMarkPos,
|
||||
TextEditor::BaseTextEditorWidget::openEditorAt(QDir::fromNativeSeparators(item.path.first()),
|
||||
item.lineNumber, item.textMarkPos,
|
||||
Core::Id(),
|
||||
Core::EditorManager::ModeSwitch);
|
||||
} else {
|
||||
Core::EditorManager::instance()->openEditor(item.text, Core::Id(), Core::EditorManager::ModeSwitch);
|
||||
Core::EditorManager::instance()->openEditor(QDir::fromNativeSeparators(item.text),
|
||||
Core::Id(), Core::EditorManager::ModeSwitch);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -812,12 +812,21 @@ QStringList CppModelManager::internalFrameworkPaths() const
|
||||
QByteArray CppModelManager::internalDefinedMacros() const
|
||||
{
|
||||
QByteArray macros;
|
||||
QSet<QByteArray> alreadyIn;
|
||||
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
ProjectInfo pinfo = it.value();
|
||||
foreach (const ProjectPart::Ptr &part, pinfo.projectParts())
|
||||
macros += part->defines;
|
||||
foreach (const ProjectPart::Ptr &part, pinfo.projectParts()) {
|
||||
const QList<QByteArray> defs = part->defines.split('\n');
|
||||
foreach (const QByteArray &def, defs) {
|
||||
if (!alreadyIn.contains(def)) {
|
||||
macros += def;
|
||||
macros.append('\n');
|
||||
alreadyIn.insert(def);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return macros;
|
||||
}
|
||||
|
@@ -110,6 +110,8 @@ GenericBuildConfiguration *GenericMakeStep::genericBuildConfiguration() const
|
||||
bool GenericMakeStep::init()
|
||||
{
|
||||
GenericBuildConfiguration *bc = genericBuildConfiguration();
|
||||
if (!bc)
|
||||
bc = static_cast<GenericBuildConfiguration *>(target()->activeBuildConfiguration());
|
||||
|
||||
ProjectExplorer::ProcessParameters *pp = processParameters();
|
||||
pp->setMacroExpander(bc->macroExpander());
|
||||
@@ -173,7 +175,7 @@ QString GenericMakeStep::makeCommand() const
|
||||
{
|
||||
QString command = m_makeCommand;
|
||||
if (command.isEmpty()) {
|
||||
GenericProject *pro = genericBuildConfiguration()->genericTarget()->genericProject();
|
||||
GenericProject *pro = static_cast<GenericProject *>(target()->project());
|
||||
if (ProjectExplorer::ToolChain *toolChain = pro->toolChain())
|
||||
command = toolChain->makeCommand();
|
||||
else
|
||||
@@ -224,7 +226,7 @@ GenericMakeStepConfigWidget::GenericMakeStepConfigWidget(GenericMakeStep *makeSt
|
||||
m_ui->setupUi(this);
|
||||
|
||||
// TODO update this list also on rescans of the GenericLists.txt
|
||||
GenericProject *pro = m_makeStep->genericBuildConfiguration()->genericTarget()->genericProject();
|
||||
GenericProject *pro = static_cast<GenericProject *>(m_makeStep->target()->project());
|
||||
foreach (const QString &target, pro->buildTargets()) {
|
||||
QListWidgetItem *item = new QListWidgetItem(target, m_ui->targetsList);
|
||||
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
||||
@@ -263,6 +265,8 @@ void GenericMakeStepConfigWidget::updateMakeOverrrideLabel()
|
||||
void GenericMakeStepConfigWidget::updateDetails()
|
||||
{
|
||||
GenericBuildConfiguration *bc = m_makeStep->genericBuildConfiguration();
|
||||
if (!bc)
|
||||
bc = static_cast<GenericBuildConfiguration *>(m_makeStep->target()->activeBuildConfiguration());
|
||||
|
||||
ProjectExplorer::ProcessParameters param;
|
||||
param.setMacroExpander(bc->macroExpander());
|
||||
|
@@ -203,7 +203,7 @@ bool AbstractMsvcToolChain::generateEnvironmentSettings(Utils::Environment &env,
|
||||
Utils::TempFileSaver saver(QDir::tempPath() + QLatin1String("/XXXXXX.bat"));
|
||||
|
||||
QByteArray call = "call ";
|
||||
call += Utils::QtcProcess::quoteArg(batchFile).toLocal8Bit() + "\r\n";
|
||||
call += Utils::QtcProcess::quoteArg(batchFile).toLocal8Bit();
|
||||
if (!batchArgs.isEmpty()) {
|
||||
call += ' ';
|
||||
call += batchArgs.toLocal8Bit();
|
||||
|
@@ -285,11 +285,6 @@ void SessionManager::addProjects(const QList<Project*> &projects)
|
||||
|
||||
if (clearedList.count() == 1)
|
||||
emit singleProjectAdded(clearedList.first());
|
||||
|
||||
// maybe we have a new startup project?
|
||||
if (!startupProject())
|
||||
if (!m_projects.isEmpty())
|
||||
setStartupProject(m_projects.first());
|
||||
}
|
||||
|
||||
void SessionManager::removeProject(Project *project)
|
||||
@@ -759,7 +754,7 @@ void SessionManager::restoreStartupProject(const Utils::PersistentSettingsReader
|
||||
const QString startupProjectPath = startupProject;
|
||||
foreach (Project *pro, m_projects) {
|
||||
if (QDir::cleanPath(pro->document()->fileName()) == startupProjectPath) {
|
||||
setStartupProject(m_startupProject);
|
||||
setStartupProject(pro);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -101,6 +101,7 @@ private slots:
|
||||
void gcc_attributes_1();
|
||||
void gcc_attributes_2();
|
||||
void gcc_attributes_3();
|
||||
void crash_test_1();
|
||||
|
||||
// expressions
|
||||
void simple_name_1();
|
||||
@@ -212,6 +213,13 @@ void tst_AST::gcc_attributes_3()
|
||||
QCOMPARE(unit->tokenKind(link->rbrace_token), (int) T_RBRACE);
|
||||
}
|
||||
|
||||
void tst_AST::crash_test_1()
|
||||
{
|
||||
QSharedPointer<TranslationUnit> unit(parseStatement("decltype auto\n"));
|
||||
AST *ast = unit->ast();
|
||||
QVERIFY(ast);
|
||||
}
|
||||
|
||||
void tst_AST::simple_declaration_1()
|
||||
{
|
||||
QSharedPointer<TranslationUnit> unit(parseStatement("\n"
|
||||
|
@@ -53,9 +53,19 @@
|
||||
<value type="bool" key="isAutodetected">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>QtVersion.5</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="int" key="Id">2</value>
|
||||
<value type="QString" key="Name">Desktop Qt 4.8 for GCC (Qt SDK)</value>
|
||||
<value type="QString" key="QMakePath">~/QtSDK/Desktop/Qt/4.8.0/gcc/bin/qmake</value>
|
||||
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||
<value type="bool" key="isAutodetected">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>QtVersion.Count</variable>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
|
@@ -107,9 +107,39 @@
|
||||
<value type="bool" key="isAutodetected">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>QtVersion.9</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="int" key="Id">1</value>
|
||||
<value type="QString" key="Name">Qt 4.8 for Desktop - MSVC2008 (Qt SDK)</value>
|
||||
<value type="QString" key="QMakePath">C:/QtSDK/Desktop/Qt/4.8.0/msvc2008/bin/qmake.exe</value>
|
||||
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||
<value type="bool" key="isAutodetected">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>QtVersion.10</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="int" key="Id">2</value>
|
||||
<value type="QString" key="Name">Qt 4.8 for Desktop - MSVC2010 (Qt SDK)</value>
|
||||
<value type="QString" key="QMakePath">C:/QtSDK/Desktop/Qt/4.8.0/msvc2010/bin/qmake.exe</value>
|
||||
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||
<value type="bool" key="isAutodetected">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>QtVersion.10</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="int" key="Id">3</value>
|
||||
<value type="QString" key="Name">Qt 4.8 for Desktop - MinGW (Qt SDK)</value>
|
||||
<value type="QString" key="QMakePath">C:/QtSDK/Desktop/Qt/4.8.0/mingw/bin/qmake.exe</value>
|
||||
<value type="QString" key="QtVersion.Type">Qt4ProjectManager.QtVersion.Desktop</value>
|
||||
<value type="bool" key="isAutodetected">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>QtVersion.Count</variable>
|
||||
<value type="int">9</value>
|
||||
<value type="int">12</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
|
@@ -11,11 +11,12 @@ def __handleProcessExited__(object, exitCode):
|
||||
global processExited
|
||||
processExited = True
|
||||
|
||||
def openQmakeProject(projectPath):
|
||||
def openQmakeProject(projectPath, targets=QtQuickConstants.Targets.DESKTOP):
|
||||
invokeMenuItem("File", "Open File or Project...")
|
||||
selectFromFileDialog(projectPath)
|
||||
selectFromCombo(waitForObject(":Qt Creator.Create Build Configurations:_QComboBox", 180000),
|
||||
"For Each Qt Version One Debug And One Release")
|
||||
__chooseTargets__(targets)
|
||||
configureButton = waitForObject("{text='Configure Project' type='QPushButton' unnamed='1' visible='1'"
|
||||
"window=':Qt Creator_Core::Internal::MainWindow'}", 20000)
|
||||
clickButton(configureButton)
|
||||
@@ -271,6 +272,7 @@ def __chooseTargets__(targets=QtQuickConstants.Targets.DESKTOP, availableTargets
|
||||
QtQuickConstants.Targets.SIMULATOR, QtQuickConstants.Targets.HARMATTAN]
|
||||
if platform.system() in ('Windows', 'Microsoft'):
|
||||
available += [QtQuickConstants.Targets.SYMBIAN]
|
||||
available.remove(QtQuickConstants.Targets.EMBEDDED_LINUX)
|
||||
for current in available:
|
||||
mustCheck = targets & current == current
|
||||
try:
|
||||
|
@@ -2,11 +2,14 @@ import re;
|
||||
|
||||
# this function switches the MainWindow of creator to the specified view
|
||||
def switchViewTo(view):
|
||||
# make sure that no tooltip is shown, so move the mouse away and wait until all disappear
|
||||
mouseMove(waitForObject(':Qt Creator_Core::Internal::MainWindow'), -20, -20)
|
||||
waitFor("not QToolTip.isVisible()", 15000)
|
||||
if view < ViewConstants.WELCOME or view > ViewConstants.LAST_AVAILABLE:
|
||||
return
|
||||
tabBar = waitForObject("{type='Core::Internal::FancyTabBar' unnamed='1' visible='1' "
|
||||
"window=':Qt Creator_Core::Internal::MainWindow'}")
|
||||
mouseMove(tabBar, 10, 10 + 52 * view)
|
||||
mouseMove(tabBar, 20, 20 + 52 * view)
|
||||
if waitFor("QToolTip.isVisible()", 10000):
|
||||
text = str(QToolTip.text())
|
||||
else:
|
||||
@@ -18,7 +21,7 @@ def switchViewTo(view):
|
||||
else:
|
||||
test.warning("ToolTip does not match", "Expected pattern: %s\nGot: %s" % (pattern, text))
|
||||
mouseClick(waitForObject("{type='Core::Internal::FancyTabBar' unnamed='1' visible='1' "
|
||||
"window=':Qt Creator_Core::Internal::MainWindow'}"), 5, 5 + 52 * view, 0, Qt.LeftButton)
|
||||
"window=':Qt Creator_Core::Internal::MainWindow'}"), 20, 20 + 52 * view, 0, Qt.LeftButton)
|
||||
|
||||
# this function is used to make sure that simple building prerequisites are met
|
||||
# param targetCount specifies how many build targets had been selected (it's important that this one is correct)
|
||||
|
@@ -1,4 +1,5 @@
|
||||
source("../../shared/qtcreator.py")
|
||||
import re
|
||||
|
||||
SpeedCrunchPath = ""
|
||||
|
||||
@@ -25,7 +26,17 @@ def main():
|
||||
|
||||
fancyToolButton = waitForObject(":*Qt Creator_Core::Internal::FancyToolButton")
|
||||
|
||||
qtVerPattern = re.compile("\d\.\d(\.\d+)?")
|
||||
for config in iterateBuildConfigs(1, 0, "(Desktop )?Qt.*Release"):
|
||||
qtVersion = qtVerPattern.search(config)
|
||||
if qtVersion:
|
||||
qtVersion = qtVersion.group()
|
||||
if qtVersion >= "4.8":
|
||||
test.log("Skipping config %s - this project needs Qt <= 4.7.x (got %s)" % (config, qtVersion))
|
||||
continue
|
||||
else:
|
||||
test.warning("Could not determine Qt version for config '%s' - skipping..." % config)
|
||||
continue
|
||||
selectBuildConfig(1, 0, config)
|
||||
buildConfig = buildConfigFromFancyToolButton(fancyToolButton)
|
||||
if buildConfig != config:
|
||||
|