Merge remote-tracking branch 'origin/4.6' into 4.7

Change-Id: Ifddceb06f377ea428300fa8a48908cfc44b98705
This commit is contained in:
Eike Ziller
2018-05-28 16:07:00 +02:00
9 changed files with 85 additions and 153 deletions

51
dist/changes-4.6.2.md vendored Normal file
View File

@@ -0,0 +1,51 @@
Qt Creator version 4.6.2 contains bug fixes.
The most important changes are listed in this document. For a complete
list of changes, see the Git log for the Qt Creator sources that
you can check out from the public Git repository. For example:
git clone git://code.qt.io/qt-creator/qt-creator.git
git log --cherry-pick --pretty=oneline v4.6.1..v4.6.2
General
QMake Projects
* Fixed reparsing after changes (QTCREATORBUG-20113)
Qt Support
* Fixed detection of Qt Quick Compiler in Qt 5.11 (QTCREATORBUG-19993)
C++ Support
* Fixed flags for C files with MSVC (QTCREATORBUG-20198)
Debugging
* Fixed crash when attaching to remote process (QTCREATORBUG-20331)
Platform Specific
macOS
* Fixed signature of pre-built binaries (QTCREATORBUG-20370)
Android
* Fixed path to C++ includes (QTCREATORBUG-20340)
QNX
* Fixed restoring deploy steps (QTCREATORBUG-20248)
Credits for these changes go to:
Alessandro Portale
André Pönitz
Christian Stenger
Eike Ziller
Ivan Donchevskii
Oswald Buddenhagen
Robert Löhning
Ulf Hermann
Vikas Pachdha

View File

@@ -696,7 +696,6 @@ void GdbEngine::interruptInferior()
showStatusMessage(tr("Stop requested..."), 5000);
showMessage("TRYING TO INTERRUPT INFERIOR");
if (HostOsInfo::isWindowsHost() && !m_isQnxGdb) {
QTC_ASSERT(state() == InferiorStopRequested, qDebug() << state(); notifyInferiorStopFailed());
IDevice::ConstPtr device = runTool()->device();
if (!device)
device = runParameters().inferior.device;

View File

@@ -1813,9 +1813,8 @@ bool BaseQtVersion::isQtQuickCompilerSupported(QString *reason) const
return false;
}
const QString qtQuickCompilerExecutable =
HostOsInfo::withExecutableSuffix(binPath().toString() + "/qtquickcompiler");
if (!QFileInfo::exists(qtQuickCompilerExecutable)) {
const QString qtQuickCompilerPrf = mkspecsPath().toString() + "/features/qtquickcompiler.prf";
if (!QFileInfo::exists(qtQuickCompilerPrf)) {
if (reason)
*reason = QCoreApplication::translate("BaseQtVersion", "This Qt Version does not contain Qt Quick Compiler.");
return false;

View File

@@ -166,7 +166,6 @@ void ProFileCacheManager::clear()
// loop is concerned. Use a shared pointer once this is not true anymore.
delete m_cache;
m_cache = 0;
QMakeVfs::clearIds();
}
void ProFileCacheManager::discardFiles(const QString &prefix, QMakeVfs *vfs)

View File

@@ -49,11 +49,29 @@ QMakeVfs::QMakeVfs()
#ifndef QT_NO_TEXTCODEC
m_textCodec = 0;
#endif
#ifdef PROEVALUATOR_THREAD_SAFE
QMutexLocker locker(&s_mutex);
#endif
++s_refCount;
}
QMakeVfs::~QMakeVfs()
{
#ifdef PROEVALUATOR_THREAD_SAFE
QMutexLocker locker(&s_mutex);
#endif
if (!--s_refCount) {
s_fileIdCounter = 0;
s_fileIdMap.clear();
s_idFileMap.clear();
}
}
#ifdef PROPARSER_THREAD_SAFE
QMutex QMakeVfs::s_mutex;
#endif
int QMakeVfs::s_refCount;
QAtomicInt QMakeVfs::s_fileIdCounter;
QHash<QString, int> QMakeVfs::s_fileIdMap;
QHash<int, QString> QMakeVfs::s_idFileMap;
@@ -111,16 +129,6 @@ QString QMakeVfs::fileNameForId(int id)
return s_idFileMap.value(id);
}
void QMakeVfs::clearIds()
{
#ifdef PROEVALUATOR_THREAD_SAFE
QMutexLocker locker(&s_mutex);
#endif
s_fileIdCounter = 0;
s_fileIdMap.clear();
s_idFileMap.clear();
}
bool QMakeVfs::writeFile(int id, QIODevice::OpenMode mode, VfsFlags flags,
const QString &contents, QString *errStr)
{

View File

@@ -72,10 +72,10 @@ public:
Q_DECLARE_FLAGS(VfsFlags, VfsFlag)
QMakeVfs();
~QMakeVfs();
int idForFileName(const QString &fn, VfsFlags flags);
QString fileNameForId(int id);
static void clearIds();
bool writeFile(int id, QIODevice::OpenMode mode, VfsFlags flags, const QString &contents, QString *errStr);
ReadResult readFile(int id, QString *contents, QString *errStr);
bool exists(const QString &fn, QMakeVfs::VfsFlags flags);
@@ -93,6 +93,7 @@ private:
#ifdef PROEVALUATOR_THREAD_SAFE
static QMutex s_mutex;
#endif
static int s_refCount;
static QAtomicInt s_fileIdCounter;
// Qt Creator's ProFile cache is a singleton to maximize its cross-project
// effectiveness (shared prf files from QtVersions).

View File

@@ -26,8 +26,6 @@
source("../../shared/qtcreator.py")
def main():
test.warning("This needs a Qt 5.6.2 kit. Skipping it.")
return
pathCreator = os.path.join(srcPath, "creator", "qtcreator.qbs")
if not neededFilePresent(pathCreator):
return
@@ -36,8 +34,8 @@ def main():
if not startedWithoutPluginError():
return
openQbsProject(pathCreator)
if not addAndActivateKit(Targets.DESKTOP_5_6_1_DEFAULT):
test.fatal("Failed to activate '%s'" % Targets.getStringForTarget(Targets.DESKTOP_5_4_1_GCC))
if not addAndActivateKit(Targets.DESKTOP_5_10_1_DEFAULT):
test.fatal("Failed to activate '%s'" % Targets.getStringForTarget(Targets.DESKTOP_5_10_1_DEFAULT))
invokeMenuItem("File", "Exit")
return
test.log("Start parsing project")

View File

@@ -11808,124 +11808,6 @@
"outputprocessor.h" "3"
"clangbackend" "2"
"clangbackend.qbs:3" "3"
"Group 3" "3"
"clangbackend.qbs:9" "4"
"ipcsource" "4"
"clangasyncjob.h" "5"
"clangbackend_global.h" "5"
"clangclock.h" "5"
"clangcodecompleteresults.cpp" "5"
"clangcodecompleteresults.h" "5"
"clangcodemodelserver.cpp" "5"
"clangcodemodelserver.h" "5"
"clangcompletecodejob.cpp" "5"
"clangcompletecodejob.h" "5"
"clangcreateinitialdocumentpreamblejob.cpp" "5"
"clangcreateinitialdocumentpreamblejob.h" "5"
"clangdocument.cpp" "5"
"clangdocument.h" "5"
"clangdocumentprocessor.cpp" "5"
"clangdocumentprocessor.h" "5"
"clangdocumentprocessors.cpp" "5"
"clangdocumentprocessors.h" "5"
"clangdocuments.cpp" "5"
"clangdocuments.h" "5"
"clangdocumentsuspenderresumer.cpp" "5"
"clangdocumentsuspenderresumer.h" "5"
"clangexceptions.cpp" "5"
"clangexceptions.h" "5"
"clangfilepath.cpp" "5"
"clangfilepath.h" "5"
"clangfilesystemwatcher.cpp" "5"
"clangfilesystemwatcher.h" "5"
"clangiasyncjob.cpp" "5"
"clangiasyncjob.h" "5"
"clangjobcontext.cpp" "5"
"clangjobcontext.h" "5"
"clangjobqueue.cpp" "5"
"clangjobqueue.h" "5"
"clangjobrequest.cpp" "5"
"clangjobrequest.h" "5"
"clangjobs.cpp" "5"
"clangjobs.h" "5"
"clangparsesupportivetranslationunitjob.cpp" "5"
"clangparsesupportivetranslationunitjob.h" "5"
"clangreferencescollector.cpp" "5"
"clangreferencescollector.h" "5"
"clangreparsesupportivetranslationunitjob.cpp" "5"
"clangreparsesupportivetranslationunitjob.h" "5"
"clangrequestdocumentannotationsjob.cpp" "5"
"clangrequestdocumentannotationsjob.h" "5"
"clangrequestreferencesjob.cpp" "5"
"clangrequestreferencesjob.h" "5"
"clangresumedocumentjob.cpp" "5"
"clangresumedocumentjob.h" "5"
"clangstring.h" "5"
"clangsupportivetranslationunitinitializer.cpp" "5"
"clangsupportivetranslationunitinitializer.h" "5"
"clangsuspenddocumentjob.cpp" "5"
"clangsuspenddocumentjob.h" "5"
"clangtranslationunit.cpp" "5"
"clangtranslationunit.h" "5"
"clangtranslationunits.cpp" "5"
"clangtranslationunits.h" "5"
"clangtranslationunitupdater.cpp" "5"
"clangtranslationunitupdater.h" "5"
"clangtype.cpp" "5"
"clangtype.h" "5"
"clangunsavedfilesshallowarguments.cpp" "5"
"clangunsavedfilesshallowarguments.h" "5"
"clangupdatedocumentannotationsjob.cpp" "5"
"clangupdatedocumentannotationsjob.h" "5"
"codecompleter.cpp" "5"
"codecompleter.h" "5"
"codecompletionchunkconverter.cpp" "5"
"codecompletionchunkconverter.h" "5"
"codecompletionsextractor.cpp" "5"
"codecompletionsextractor.h" "5"
"commandlinearguments.cpp" "5"
"commandlinearguments.h" "5"
"cursor.cpp" "5"
"cursor.h" "5"
"diagnostic.cpp" "5"
"diagnostic.h" "5"
"diagnosticset.cpp" "5"
"diagnosticset.h" "5"
"diagnosticsetiterator.h" "5"
"fixit.cpp" "5"
"fixit.h" "5"
"highlightingmark.cpp" "5"
"highlightingmark.h" "5"
"highlightingmarks.cpp" "5"
"highlightingmarks.h" "5"
"highlightingmarksiterator.h" "5"
"projectpart.cpp" "5"
"projectpart.h" "5"
"projects.cpp" "5"
"projects.h" "5"
"skippedsourceranges.cpp" "5"
"skippedsourceranges.h" "5"
"sourcelocation.cpp" "5"
"sourcelocation.h" "5"
"sourcerange.cpp" "5"
"sourcerange.h" "5"
"unsavedfile.cpp" "5"
"unsavedfile.h" "5"
"unsavedfiles.cpp" "5"
"unsavedfiles.h" "5"
"utf8positionfromlinecolumn.cpp" "5"
"utf8positionfromlinecolumn.h" "5"
"Group 4" "3"
"clangbackend.qbs:17" "4"
"crashhandlersetup.cpp" "5"
"crashhandlersetup.h" "5"
"standard pch file (gui)" "3"
"QtcProduct.qbs:58" "4"
"qtcreator_gui_pch.h" "5"
"standard pch file (non-gui)" "3"
"QtcProduct.qbs:50" "4"
"qtcreator_pch.h" "5"
"clangbackendmain.cpp" "3"
"iostool" "2"
"iostool.qbs:3" "3"
"standard pch file (gui)" "3"
@@ -12588,6 +12470,13 @@
"diff.qbs:3" "3"
"Differ autotest" "3"
"differ.qbs:3" "4"
"standard pch file (gui)" "4"
"QtcProduct.qbs:58" "5"
"qtcreator_gui_pch.h" "6"
"standard pch file (non-gui)" "4"
"QtcProduct.qbs:50" "5"
"qtcreator_pch.h" "6"
"tst_differ.cpp" "4"
"Environment autotest" "2"
"environment.qbs:3" "3"
"standard pch file (gui)" "3"
@@ -13204,18 +13093,6 @@
"qbsplugin.qbs" "4"
"tools" "2"
"cplusplustools.qbs" "3"
"cplusplus-keywordgen.qbs" "4"
"cplusplus-ast2png" "3"
"cplusplus-ast2png.qbs" "4"
"cplusplus-frontend" "3"
"cplusplus-frontend.qbs" "4"
"cplusplus-mkvisitor" "3"
"cplusplus-mkvisitor.qbs" "4"
"cplusplus-shared" "3"
"CPlusPlusTool.qbs" "4"
"CPlusPlusToolUsingCustomUtils.qbs" "4"
"cplusplus-update-frontend" "3"
"cplusplus-update-frontend.qbs" "4"
"clangstaticanalyzer" "2"
"clangstaticanalyzerautotest.qbs" "3"
"cplusplus" "2"
1 text nestinglevel
11808 outputprocessor.h 3
11809 clangbackend 2
11810 clangbackend.qbs:3 3
Group 3 3
clangbackend.qbs:9 4
ipcsource 4
clangasyncjob.h 5
clangbackend_global.h 5
clangclock.h 5
clangcodecompleteresults.cpp 5
clangcodecompleteresults.h 5
clangcodemodelserver.cpp 5
clangcodemodelserver.h 5
clangcompletecodejob.cpp 5
clangcompletecodejob.h 5
clangcreateinitialdocumentpreamblejob.cpp 5
clangcreateinitialdocumentpreamblejob.h 5
clangdocument.cpp 5
clangdocument.h 5
clangdocumentprocessor.cpp 5
clangdocumentprocessor.h 5
clangdocumentprocessors.cpp 5
clangdocumentprocessors.h 5
clangdocuments.cpp 5
clangdocuments.h 5
clangdocumentsuspenderresumer.cpp 5
clangdocumentsuspenderresumer.h 5
clangexceptions.cpp 5
clangexceptions.h 5
clangfilepath.cpp 5
clangfilepath.h 5
clangfilesystemwatcher.cpp 5
clangfilesystemwatcher.h 5
clangiasyncjob.cpp 5
clangiasyncjob.h 5
clangjobcontext.cpp 5
clangjobcontext.h 5
clangjobqueue.cpp 5
clangjobqueue.h 5
clangjobrequest.cpp 5
clangjobrequest.h 5
clangjobs.cpp 5
clangjobs.h 5
clangparsesupportivetranslationunitjob.cpp 5
clangparsesupportivetranslationunitjob.h 5
clangreferencescollector.cpp 5
clangreferencescollector.h 5
clangreparsesupportivetranslationunitjob.cpp 5
clangreparsesupportivetranslationunitjob.h 5
clangrequestdocumentannotationsjob.cpp 5
clangrequestdocumentannotationsjob.h 5
clangrequestreferencesjob.cpp 5
clangrequestreferencesjob.h 5
clangresumedocumentjob.cpp 5
clangresumedocumentjob.h 5
clangstring.h 5
clangsupportivetranslationunitinitializer.cpp 5
clangsupportivetranslationunitinitializer.h 5
clangsuspenddocumentjob.cpp 5
clangsuspenddocumentjob.h 5
clangtranslationunit.cpp 5
clangtranslationunit.h 5
clangtranslationunits.cpp 5
clangtranslationunits.h 5
clangtranslationunitupdater.cpp 5
clangtranslationunitupdater.h 5
clangtype.cpp 5
clangtype.h 5
clangunsavedfilesshallowarguments.cpp 5
clangunsavedfilesshallowarguments.h 5
clangupdatedocumentannotationsjob.cpp 5
clangupdatedocumentannotationsjob.h 5
codecompleter.cpp 5
codecompleter.h 5
codecompletionchunkconverter.cpp 5
codecompletionchunkconverter.h 5
codecompletionsextractor.cpp 5
codecompletionsextractor.h 5
commandlinearguments.cpp 5
commandlinearguments.h 5
cursor.cpp 5
cursor.h 5
diagnostic.cpp 5
diagnostic.h 5
diagnosticset.cpp 5
diagnosticset.h 5
diagnosticsetiterator.h 5
fixit.cpp 5
fixit.h 5
highlightingmark.cpp 5
highlightingmark.h 5
highlightingmarks.cpp 5
highlightingmarks.h 5
highlightingmarksiterator.h 5
projectpart.cpp 5
projectpart.h 5
projects.cpp 5
projects.h 5
skippedsourceranges.cpp 5
skippedsourceranges.h 5
sourcelocation.cpp 5
sourcelocation.h 5
sourcerange.cpp 5
sourcerange.h 5
unsavedfile.cpp 5
unsavedfile.h 5
unsavedfiles.cpp 5
unsavedfiles.h 5
utf8positionfromlinecolumn.cpp 5
utf8positionfromlinecolumn.h 5
Group 4 3
clangbackend.qbs:17 4
crashhandlersetup.cpp 5
crashhandlersetup.h 5
standard pch file (gui) 3
QtcProduct.qbs:58 4
qtcreator_gui_pch.h 5
standard pch file (non-gui) 3
QtcProduct.qbs:50 4
qtcreator_pch.h 5
clangbackendmain.cpp 3
11811 iostool 2
11812 iostool.qbs:3 3
11813 standard pch file (gui) 3
12470 diff.qbs:3 3
12471 Differ autotest 3
12472 differ.qbs:3 4
12473 standard pch file (gui) 4
12474 QtcProduct.qbs:58 5
12475 qtcreator_gui_pch.h 6
12476 standard pch file (non-gui) 4
12477 QtcProduct.qbs:50 5
12478 qtcreator_pch.h 6
12479 tst_differ.cpp 4
12480 Environment autotest 2
12481 environment.qbs:3 3
12482 standard pch file (gui) 3
13093 qbsplugin.qbs 4
13094 tools 2
13095 cplusplustools.qbs 3
cplusplus-keywordgen.qbs 4
cplusplus-ast2png 3
cplusplus-ast2png.qbs 4
cplusplus-frontend 3
cplusplus-frontend.qbs 4
cplusplus-mkvisitor 3
cplusplus-mkvisitor.qbs 4
cplusplus-shared 3
CPlusPlusTool.qbs 4
CPlusPlusToolUsingCustomUtils.qbs 4
cplusplus-update-frontend 3
cplusplus-update-frontend.qbs 4
13096 clangstaticanalyzer 2
13097 clangstaticanalyzerautotest.qbs 3
13098 cplusplus 2

View File

@@ -41,7 +41,7 @@ def main():
waitFor("runButton.enabled", 30000)
# Starting before opening, because this is where Creator froze (QTCREATORBUG-10733)
startopening = datetime.utcnow()
openQmakeProject(pathCreator, [Targets.DESKTOP_5_6_1_DEFAULT])
openQmakeProject(pathCreator, [Targets.DESKTOP_5_10_1_DEFAULT])
# Wait for parsing to complete
startreading = datetime.utcnow()
waitFor("runButton.enabled", 300000)
@@ -64,9 +64,9 @@ def main():
openGeneralMessages()
# Verify messages appear once, from using default kit before configuring
generalMessages = str(waitForObject(":Qt Creator_Core::OutputWindow").plainText)
test.compare(generalMessages.count("Project MESSAGE: Cannot build Qt Creator with Qt version 5.6.1."), 2,
test.compare(generalMessages.count("Project MESSAGE: Cannot build Qt Creator with Qt version 5.6.1."), 1,
"Warning about outdated Qt shown?")
test.compare(generalMessages.count("Project ERROR: Use at least Qt 5.6.2."), 2,
test.compare(generalMessages.count("Project ERROR: Use at least Qt 5.6.2."), 1,
"Minimum Qt version shown (once when parsing with default kit, once with selected)?")
# Verify that qmljs.g is in the project even when we don't know where (QTCREATORBUG-17609)