forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/4.6' into 4.7
Change-Id: Ifddceb06f377ea428300fa8a48908cfc44b98705
This commit is contained in:
51
dist/changes-4.6.2.md
vendored
Normal file
51
dist/changes-4.6.2.md
vendored
Normal 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
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user