Commit 4dd95aa5 authored by Eike Ziller's avatar Eike Ziller

Merge remote-tracking branch 'origin/3.4'

Change-Id: Id13cbdf2f7047366e543c91fbe7c21a9c4759e56
parents bea726e8 50c63436
......@@ -61,6 +61,13 @@ exists(src/shared/qbs/qbs.pro) {
cache(QBS_APPS_DESTDIR)
QBS_APPS_INSTALL_DIR = $${QTC_PREFIX}/bin
cache(QBS_APPS_INSTALL_DIR)
QBS_LIBEXEC_DESTDIR = $${IDE_LIBEXEC_PATH}
cache(QBS_LIBEXEC_DESTDIR)
QBS_LIBEXEC_INSTALL_DIR = $${QTC_PREFIX}/bin
cache(QBS_LIBEXEC_INSTALL_DIR)
QBS_RELATIVE_LIBEXEC_PATH = $$relative_path($$QBS_LIBEXEC_DESTDIR, $$QBS_APPS_DESTDIR)
isEmpty(QBS_RELATIVE_LIBEXEC_PATH):QBS_RELATIVE_LIBEXEC_PATH = .
cache(QBS_RELATIVE_LIBEXEC_PATH)
QBS_RELATIVE_PLUGINS_PATH = $$relative_path($$QBS_PLUGINS_BUILD_DIR, $$QBS_APPS_DESTDIR$$)
cache(QBS_RELATIVE_PLUGINS_PATH)
QBS_RELATIVE_SEARCH_PATH = $$relative_path($$QBS_RESOURCES_BUILD_DIR, $$QBS_APPS_DESTDIR)
......
import qbs 1.0
Project {
name: "Qt Creator"
minimumQbsVersion: "1.4"
property bool withAutotests: qbs.buildVariant === "debug"
property string ide_version_major: '3'
......@@ -56,6 +57,7 @@ Project {
"QT_NO_CAST_FROM_ASCII"
].concat(testsEnabled ? ["WITH_TESTS"] : [])
qbsSearchPaths: "qbs"
property bool enableQbsJavaSupport: false
references: [
"src/src.qbs",
......
......@@ -281,7 +281,7 @@ def main():
QT_INSTALL_QML = readQmakeVar(qmake_bin, 'QT_INSTALL_QML')
QT_INSTALL_TRANSLATIONS = readQmakeVar(qmake_bin, 'QT_INSTALL_TRANSLATIONS')
plugins = ['accessible', 'codecs', 'designer', 'iconengines', 'imageformats', 'platformthemes', 'platforminputcontexts', 'platforms', 'printsupport', 'sqldrivers']
plugins = ['accessible', 'codecs', 'designer', 'iconengines', 'imageformats', 'platformthemes', 'platforminputcontexts', 'platforms', 'printsupport', 'sqldrivers', 'xcbglintegrations']
imports = ['Qt', 'QtWebKit']
if sys.platform.startswith('win'):
......
......@@ -53010,7 +53010,7 @@ Nous allons essayer de travailler avec cela mais vous pourrez rencontrer des pro
</message>
<message>
<source>Find in This Directory...</source>
<translation>Trouvé dans le répertoire...</translation>
<translation>Trouver dans le répertoire...</translation>
</message>
<message>
<source>Show in Explorer</source>
......@@ -72,7 +72,8 @@ QByteArray GeneratorInfo::generator() const
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) {
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
return "NMake Makefiles";
} else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {
if (Utils::HostOsInfo::isWindowsHost())
......@@ -105,7 +106,8 @@ QString GeneratorInfo::displayName() const
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) {
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
return tr("NMake Generator (%1)").arg(m_kit->displayName());
} else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {
if (Utils::HostOsInfo::isWindowsHost())
......@@ -139,7 +141,8 @@ QList<GeneratorInfo> GeneratorInfo::generatorInfosFor(ProjectExplorer::Kit *k, N
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2008Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2010Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2012Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) {
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
if (hasCodeBlocks)
results << GeneratorInfo(k);
} else if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMSysFlavor) {
......
......@@ -761,6 +761,8 @@ static QByteArray msvcRunTime(const Abi::OSFlavor flavour)
return "MSVCR110";
case Abi::WindowsMsvc2013Flavor:
return "MSVCR120";
case Abi::WindowsMsvc2015Flavor:
return "MSVCR140";
default:
break;
}
......
......@@ -168,6 +168,9 @@ static QList<Abi> parseCoffHeader(const QByteArray &data)
case 12:
flavor = Abi::WindowsMsvc2013Flavor;
break;
case 14:
flavor = Abi::WindowsMsvc2015Flavor;
break;
default: // Keep unknown flavor
if (minorLinker != 0)
flavor = Abi::WindowsMSysFlavor; // MSVC seems to avoid using minor numbers
......@@ -414,6 +417,8 @@ Abi::Abi(const QString &abiString) :
m_osFlavor = WindowsMsvc2012Flavor;
else if (abiParts.at(2) == QLatin1String("msvc2013") && m_os == WindowsOS)
m_osFlavor = WindowsMsvc2013Flavor;
else if (abiParts.at(2) == QLatin1String("msvc2015") && m_os == WindowsOS)
m_osFlavor = WindowsMsvc2015Flavor;
else if (abiParts.at(2) == QLatin1String("msys") && m_os == WindowsOS)
m_osFlavor = WindowsMSysFlavor;
else if (abiParts.at(2) == QLatin1String("ce") && m_os == WindowsOS)
......@@ -674,6 +679,8 @@ QString Abi::toString(const OSFlavor &of)
return QLatin1String("msvc2012");
case Abi::WindowsMsvc2013Flavor:
return QLatin1String("msvc2013");
case Abi::WindowsMsvc2015Flavor:
return QLatin1String("msvc2015");
case Abi::WindowsMSysFlavor:
return QLatin1String("msys");
case Abi::WindowsCEFlavor:
......@@ -724,8 +731,8 @@ QList<Abi::OSFlavor> Abi::flavorsForOs(const Abi::OS &o)
return result << GenericUnixFlavor << SolarisUnixFlavor << UnknownFlavor;
case WindowsOS:
return result << WindowsMsvc2005Flavor << WindowsMsvc2008Flavor << WindowsMsvc2010Flavor
<< WindowsMsvc2012Flavor << WindowsMsvc2013Flavor << WindowsMSysFlavor
<< WindowsCEFlavor << UnknownFlavor;
<< WindowsMsvc2012Flavor << WindowsMsvc2013Flavor << WindowsMsvc2015Flavor
<< WindowsMSysFlavor << WindowsCEFlavor << UnknownFlavor;
case VxWorks:
return result << VxWorksFlavor << UnknownFlavor;
case UnknownOS:
......
......@@ -90,6 +90,7 @@ public:
WindowsMsvc2010Flavor,
WindowsMsvc2012Flavor,
WindowsMsvc2013Flavor,
WindowsMsvc2015Flavor,
WindowsMSysFlavor,
WindowsCEFlavor,
......
......@@ -101,7 +101,8 @@ ToolChain::CompilerFlags AbstractMsvcToolChain::compilerFlags(const QStringList
if (m_abi.osFlavor() == Abi::WindowsMsvc2010Flavor
|| m_abi.osFlavor() == Abi::WindowsMsvc2012Flavor
|| m_abi.osFlavor() == Abi::WindowsMsvc2013Flavor)
|| m_abi.osFlavor() == Abi::WindowsMsvc2013Flavor
|| m_abi.osFlavor() == Abi::WindowsMsvc2015Flavor)
flags |= StandardCxx11;
return flags;
......
......@@ -135,7 +135,9 @@ static Abi findAbiOfMsvc(MsvcToolChain::Type type, MsvcToolChain::Platform platf
else if (version == QLatin1String("v7.0A") || version == QLatin1String("v7.1"))
msvcVersionString = QLatin1String("10.0");
}
if (msvcVersionString.startsWith(QLatin1String("12.")))
if (msvcVersionString.startsWith(QLatin1String("14.")))
flavor = Abi::WindowsMsvc2015Flavor;
else if (msvcVersionString.startsWith(QLatin1String("12.")))
flavor = Abi::WindowsMsvc2013Flavor;
else if (msvcVersionString.startsWith(QLatin1String("11.")))
flavor = Abi::WindowsMsvc2012Flavor;
......@@ -404,6 +406,14 @@ QList<Utils::FileName> MsvcToolChain::suggestedMkspecList() const
<< Utils::FileName::fromLatin1("winrt-x64-msvc2013")
<< Utils::FileName::fromLatin1("win32-msvc2012")
<< Utils::FileName::fromLatin1("win32-msvc2010");
case Abi::WindowsMsvc2015Flavor:
return QList<Utils::FileName>()
<< Utils::FileName::fromLatin1("win32-msvc2015")
<< Utils::FileName::fromLatin1("winphone-arm-msvc2015")
<< Utils::FileName::fromLatin1("winphone-x86-msvc2015")
<< Utils::FileName::fromLatin1("winrt-arm-msvc2015")
<< Utils::FileName::fromLatin1("winrt-x86-msvc2015")
<< Utils::FileName::fromLatin1("winrt-x64-msvc2015");
default:
break;
}
......
......@@ -255,7 +255,8 @@ QVariantMap DefaultPropertyProvider::autoGeneratedProperties(const ProjectExplor
if (!m.isEmpty())
data.insert(QLatin1String(CPP_COMPILERPATHBYLANGUAGE), m);
if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor) {
if (targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2013Flavor
|| targetAbi.osFlavor() == ProjectExplorer::Abi::WindowsMsvc2015Flavor) {
const QLatin1String flags("/FS");
data.insert(QLatin1String(CPP_PLATFORMCFLAGS), flags);
data.insert(QLatin1String(CPP_PLATFORMCXXFLAGS), flags);
......
......@@ -100,6 +100,7 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env,
const qbs::Preferences prefs(QbsManager::settings(), profileName);
params.setSearchPaths(prefs.searchPaths(resourcesBaseDirectory()));
params.setPluginPaths(prefs.pluginPaths(pluginsBaseDirectory()));
params.setLibexecPath(libExecDirectory());
m_qbsSetupProjectJob = m_project.setupProject(params, QbsManager::logSink(), 0);
......@@ -163,6 +164,14 @@ QString QbsProjectParser::resourcesBaseDirectory() const
return Core::ICore::resourcePath() + QLatin1String("/qbs");
}
QString QbsProjectParser::libExecDirectory() const
{
const QString qbsInstallDir = QLatin1String(QBS_INSTALL_DIR);
if (!qbsInstallDir.isEmpty())
return qbsInstallDir + QLatin1String("/libexec");
return Core::ICore::libexecPath();
}
QString QbsProjectParser::pluginsBaseDirectory() const
{
const QString qbsInstallDir = QLatin1String(QBS_INSTALL_DIR);
......
......@@ -69,6 +69,7 @@ private slots:
private:
QString pluginsBaseDirectory() const;
QString resourcesBaseDirectory() const;
QString libExecDirectory() const;
QString m_projectFilePath;
qbs::SetupProjectJob *m_qbsSetupProjectJob;
......
......@@ -167,9 +167,8 @@ QModelIndex CallModel::index(int row, int column, const QModelIndex &parent) con
QVariant CallModel::data(const QModelIndex &index, int role) const
{
//QTC_ASSERT(index.isValid() && index.model() == this, return QVariant());
//QTC_ASSERT(index.column() >= 0 && index.column() < columnCount(index.parent()), return QVariant());
//QTC_ASSERT(index.row() >= 0 && index.row() < rowCount(index.parent()), return QVariant());
if (!index.isValid())
return QVariant();
const FunctionCall *call = d->m_calls.at(index.row());
if (role == Qt::DisplayRole || role == Qt::ToolTipRole) {
......
......@@ -214,9 +214,8 @@ static QString shortenTemplate(QString str)
QVariant DataModel::data(const QModelIndex &index, int role) const
{
//QTC_ASSERT(index.isValid() && index.model() == this, return QVariant());
//QTC_ASSERT(index.column() >= 0 && index.column() < columnCount(index.parent()), return QVariant());
//QTC_ASSERT(index.row() >= 0 && index.row() < rowCount(index.parent()), return QVariant());
if (!index.isValid())
return QVariant();
const Function *func = d->m_functions.at(index.row());
......
Subproject commit 760dc4ef7571e780489adcd51ddb80beb000bd21
Subproject commit 9309633cb821643be1366f6c87ec31b55e26be09
......@@ -7,6 +7,7 @@ QBS_DIRS = \
qbscorelib \
qbsqtprofilesetup \
qbsapps \
qbslibexec \
qbsplugins \
qbsstatic
......@@ -15,6 +16,8 @@ qbsqtprofilesetup.subdir = shared/qbs/src/lib/qtprofilesetup
qbsqtprofilesetup.depends = qbscorelib
qbsapps.subdir = shared/qbs/src/app
qbsapps.depends = qbsqtprofilesetup
qbslibexec.subdir = shared/qbs/src/libexec
qbslibexec.depends = qbscorelib
qbsplugins.subdir = shared/qbs/src/plugins
qbsstatic.file = shared/qbs/static.pro
......
......@@ -33,12 +33,16 @@ Project {
property string resourcesInstallDir: project.ide_data_path + "/qbs"
property string pluginsInstallDir: project.ide_plugin_path
property string appInstallDir: project.ide_bin_path
property string libexecInstallDir: project.ide_libexec_path
property string relativeLibexecPath: FileInfo.relativePath(appInstallDir, libexecInstallDir)
property string relativePluginsPath: FileInfo.relativePath(appInstallDir, pluginsInstallDir)
property string relativeSearchPath: FileInfo.relativePath(appInstallDir,
resourcesInstallDir)
property bool enableJava: project.enableQbsJavaSupport
references: [
qbsBaseDir + "/src/lib/libs.qbs",
qbsBaseDir + "/src/libexec/libexec.qbs",
qbsBaseDir + "/src/plugins/plugins.qbs",
qbsBaseDir + "/share/share.qbs",
qbsBaseDir + "/src/app/apps.qbs",
......
......@@ -281,6 +281,8 @@ QVariantMap AddToolChainOperation::initializeToolChains()
bool AddToolChainOperation::exists(const QVariantMap &map, const QString &id)
{
QStringList valueKeys = FindValueOperation::findValue(map, id);
// support old settings using QByteArray for id's
valueKeys.append(FindValueOperation::findValue(map, id.toUtf8()));
foreach (const QString &k, valueKeys) {
if (k.endsWith(QString(QLatin1Char('/')) + QLatin1String(ID))) {
......
......@@ -32,13 +32,11 @@ import operator
# for easier re-usage (because Python hasn't an enum type)
class Targets:
ALL_TARGETS = map(lambda x: 2 ** x , range(9))
ALL_TARGETS = map(lambda x: 2 ** x , range(7))
(DESKTOP_474_GCC,
DESKTOP_480_DEFAULT,
SIMULATOR,
MAEMO5,
HARMATTAN,
EMBEDDED_LINUX,
DESKTOP_521_DEFAULT,
DESKTOP_531_DEFAULT,
......@@ -46,8 +44,7 @@ class Targets:
@staticmethod
def desktopTargetClasses():
desktopTargets = (sum(Targets.ALL_TARGETS) & ~Targets.SIMULATOR & ~Targets.MAEMO5
& ~Targets.HARMATTAN & ~Targets.EMBEDDED_LINUX)
desktopTargets = (sum(Targets.ALL_TARGETS) & ~Targets.SIMULATOR & ~Targets.EMBEDDED_LINUX)
if platform.system() == 'Darwin':
desktopTargets &= ~Targets.DESKTOP_541_GCC
return desktopTargets
......@@ -61,12 +58,8 @@ class Targets:
return "Desktop 480 MSVC2010"
else:
return "Desktop 480 GCC"
elif target == Targets.MAEMO5:
return "Fremantle"
elif target == Targets.SIMULATOR:
return "Qt Simulator"
elif target == Targets.HARMATTAN:
return "Harmattan"
elif target == Targets.EMBEDDED_LINUX:
return "Embedded Linux"
elif target == Targets.DESKTOP_521_DEFAULT:
......
......@@ -394,9 +394,6 @@ def __chooseTargets__(targets=Targets.DESKTOP_474_GCC, availableTargets=None):
available.remove(Targets.EMBEDDED_LINUX)
elif platform.system() == 'Darwin':
available.remove(Targets.DESKTOP_541_GCC)
for target in filter(lambda x: x in available,
(Targets.MAEMO5, Targets.HARMATTAN)):
available.remove(target)
checkedTargets = []
for current in available:
mustCheck = targets & current == current
......@@ -624,14 +621,9 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False):
result.extend([Targets.DESKTOP_521_DEFAULT, Targets.DESKTOP_531_DEFAULT])
if platform.system() != 'Darwin':
result.append(Targets.DESKTOP_541_GCC)
if 'MeeGo/Harmattan' in supports:
result.append(Targets.HARMATTAN)
if 'Maemo/Fremantle' in supports:
result.append(Targets.MAEMO5)
if not ("BlackBerry" in templateName or re.search("custom Qt Creator plugin", text)) and (version == None or version < "5.0"):
result.append(Targets.SIMULATOR)
elif 'Platform independent' in text:
# MAEMO5 and HARMATTAN could be wrong here - depends on having Madde plugin enabled or not
result = list(Targets.ALL_TARGETS)
result.remove(Targets.EMBEDDED_LINUX)
if platform.system() == 'Darwin':
......
......@@ -380,20 +380,15 @@ def getConfiguredKits():
iterateKits(True, True, __setQtVersionForKit__, kitsWithQtVersionName)
# merge defined target names with their configured Qt versions and devices
for kit, qtVersion in kitsWithQtVersionName.iteritems():
if kit in ('Fremantle', 'Harmattan') and qtVersion == 'None':
test.log("Found Kit '%s' with unassigned Qt version (disabled Madde plugin)" % kit)
if kit in ('Fremantle', 'Harmattan'):
test.verify(qtVersion == 'None',
"The outdated kit '%s' should not have a Qt version" % kit)
elif qtVersion in qtVersionNames:
result[kit] = targetsQtVersions[qtVersionNames.index(qtVersion)].items()[0]
else:
test.fail("Qt version '%s' for kit '%s' can't be found in qtVersionNames."
% (qtVersion, kit))
clickButton(waitForObject(":Options.Cancel_QPushButton"))
# adjust device name(s) to match getStringForTarget() - some differ from time to time
for targetName in result.keys():
targetInfo = result[targetName]
if targetInfo[0] == "Maemo":
result.update({targetName:
(Targets.getStringForTarget(Targets.MAEMO5), targetInfo[1])})
test.log("Configured kits: %s" % str(result))
return result
......
......@@ -49,10 +49,7 @@ def main():
test.compare("Projects", str(projects.data()))
comboBox = findObject(":New.comboBox_QComboBox")
targets = zip(*kits.values())[0]
maddeTargets = Targets.getTargetsAsStrings([Targets.MAEMO5, Targets.HARMATTAN])
maddeInTargets = len(set(targets) & set(maddeTargets)) > 0
test.verify(comboBox.enabled, "Verifying whether combobox is enabled.")
test.verify(not maddeInTargets, "Verify there are no leftovers of Madde")
test.compare(comboBox.currentText, "Desktop Templates")
selectFromCombo(comboBox, "All Templates")
for category in [item.replace(".", "\\.") for item in dumpItems(catModel, projects)]:
......@@ -84,11 +81,6 @@ def main():
if counter < len(quickCombinations) - 1:
displayedPlatforms = __createProject__(category, template)
continue
try:
waitForObject("{name='mainQmlFileGroupBox' title='Main HTML File' type='QGroupBox' visible='1'}", 1000)
clickButton(waitForObject(":Next_QPushButton"))
except LookupError:
pass
verifyKitCheckboxes(kits, displayedPlatforms)
clickButton(waitForObject("{type='QPushButton' text='Cancel' visible='1'}"))
invokeMenuItem("File", "Exit")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment