diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-06-06 09:57:01 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2018-06-06 09:57:01 +0200 |
commit | 3f356f31bc311e5eeacee7e1ac01ed7d2f9943de (patch) | |
tree | e52f5b67c8d60c68015c8d99252e01fc7e54dbda /src/libs | |
parent | 0fbb2839f92b001414d1eed2ae2627cf421fd34f (diff) | |
parent | 5921376573bf57b09fa89fa788b94f2a5a1fdda9 (diff) | |
download | qt-creator-3f356f31bc311e5eeacee7e1ac01ed7d2f9943de.tar.gz |
Merge remote-tracking branch 'origin/4.7'
Conflicts:
qbs/modules/qtc/qtc.qbs
qtcreator.pri
Change-Id: I3d42bd52fb7b977cfdfad83092fb6f6eac974e24
Diffstat (limited to 'src/libs')
-rw-r--r-- | src/libs/3rdparty/botan/botan.cpp | 2 | ||||
-rw-r--r-- | src/libs/3rdparty/cplusplus/Name.h | 2 | ||||
-rw-r--r-- | src/libs/3rdparty/cplusplus/Names.h | 2 | ||||
-rw-r--r-- | src/libs/clangsupport/clangcodemodelconnectionclient.cpp | 6 | ||||
-rw-r--r-- | src/libs/clangsupport/processcreator.cpp | 9 | ||||
-rw-r--r-- | src/libs/clangsupport/processcreator.h | 3 | ||||
-rw-r--r-- | src/libs/glsl/glslengine.h | 2 | ||||
-rw-r--r-- | src/libs/qtcreatorcdbext/containers.cpp | 2 | ||||
-rw-r--r-- | src/libs/qtcreatorcdbext/stringutils.h | 2 | ||||
-rw-r--r-- | src/libs/qtcreatorcdbext/symbolgroup.cpp | 2 | ||||
-rw-r--r-- | src/libs/utils/fileutils.cpp | 2 | ||||
-rw-r--r-- | src/libs/utils/fileutils.h | 8 | ||||
-rw-r--r-- | src/libs/utils/smallstringview.h | 4 |
13 files changed, 31 insertions, 15 deletions
diff --git a/src/libs/3rdparty/botan/botan.cpp b/src/libs/3rdparty/botan/botan.cpp index 87736d5fe3..0d912062b3 100644 --- a/src/libs/3rdparty/botan/botan.cpp +++ b/src/libs/3rdparty/botan/botan.cpp @@ -465,7 +465,7 @@ inline V search_map(const std::map<K, V>& mapping, * Function adaptor for delete operation */ template<class T> -class del_fun : public std::unary_function<T, void> +class del_fun { public: void operator()(T* ptr) { delete ptr; } diff --git a/src/libs/3rdparty/cplusplus/Name.h b/src/libs/3rdparty/cplusplus/Name.h index 200ccac75d..460f0bca11 100644 --- a/src/libs/3rdparty/cplusplus/Name.h +++ b/src/libs/3rdparty/cplusplus/Name.h @@ -59,7 +59,7 @@ public: bool match(const Name *other, Matcher *matcher = 0) const; public: - struct Compare: std::binary_function<const Name *, const Name *, bool> { + struct Compare { bool operator()(const Name *name, const Name *other) const; }; diff --git a/src/libs/3rdparty/cplusplus/Names.h b/src/libs/3rdparty/cplusplus/Names.h index 41f3e761b4..b8d090da2f 100644 --- a/src/libs/3rdparty/cplusplus/Names.h +++ b/src/libs/3rdparty/cplusplus/Names.h @@ -101,7 +101,7 @@ public: bool isSpecialization() const { return _isSpecialization; } // Comparator needed to distinguish between two different TemplateNameId(e.g.:used in std::map) - struct Compare: std::binary_function<const TemplateNameId *, const TemplateNameId *, bool> { + struct Compare { bool operator()(const TemplateNameId *name, const TemplateNameId *other) const; }; diff --git a/src/libs/clangsupport/clangcodemodelconnectionclient.cpp b/src/libs/clangsupport/clangcodemodelconnectionclient.cpp index 1938d06353..56186e24dc 100644 --- a/src/libs/clangsupport/clangcodemodelconnectionclient.cpp +++ b/src/libs/clangsupport/clangcodemodelconnectionclient.cpp @@ -25,6 +25,7 @@ #include "clangcodemodelconnectionclient.h" +#include <utils/environment.h> #include <utils/temporarydirectory.h> #include <QCoreApplication> @@ -50,6 +51,11 @@ ClangCodeModelConnectionClient::ClangCodeModelConnectionClient( m_processCreator.setTemporaryDirectoryPattern("clangbackend-XXXXXX"); m_processCreator.setArguments({connectionName()}); + Utils::Environment environment; + environment.set(QStringLiteral("LIBCLANG_NOTHREADS"), QString()); + environment.set(QStringLiteral("LIBCLANG_DISABLE_CRASH_RECOVERY"), QString()); + m_processCreator.setEnvironment(environment); + stdErrPrefixer().setPrefix("clangbackend.stderr: "); stdOutPrefixer().setPrefix("clangbackend.stdout: "); } diff --git a/src/libs/clangsupport/processcreator.cpp b/src/libs/clangsupport/processcreator.cpp index dfc7f56d9f..22b52793e3 100644 --- a/src/libs/clangsupport/processcreator.cpp +++ b/src/libs/clangsupport/processcreator.cpp @@ -56,6 +56,11 @@ void ProcessCreator::setArguments(const QStringList &arguments) m_arguments = arguments; } +void ProcessCreator::setEnvironment(const Utils::Environment &environment) +{ + m_environment = environment; +} + std::future<QProcessUniquePointer> ProcessCreator::createProcess() const { return std::async(std::launch::async, [&] { @@ -167,6 +172,10 @@ QProcessEnvironment ProcessCreator::processEnvironment() const processEnvironment.insert("TEMP", temporaryDirectoryPath); } + const Utils::Environment &env = m_environment; + for (auto it = env.constBegin(); it != env.constEnd(); ++it) + processEnvironment.insert(it.key(), it.value()); + return processEnvironment; } diff --git a/src/libs/clangsupport/processcreator.h b/src/libs/clangsupport/processcreator.h index 9742992175..928857319b 100644 --- a/src/libs/clangsupport/processcreator.h +++ b/src/libs/clangsupport/processcreator.h @@ -29,6 +29,7 @@ #include "processhandle.h" +#include <utils/environment.h> #include <utils/temporarydirectory.h> #include <QStringList> @@ -51,6 +52,7 @@ public: void setTemporaryDirectoryPattern(const QString &temporaryDirectoryPattern); void setProcessPath(const QString &m_processPath); void setArguments(const QStringList &m_arguments); + void setEnvironment(const Utils::Environment &environment); void setObserver(QObject *m_observer); std::future<QProcessUniquePointer> createProcess() const; @@ -72,6 +74,7 @@ private: QString m_processPath; QString m_temporaryDirectoryPattern; QStringList m_arguments; + Utils::Environment m_environment; QObject *m_observer = nullptr; }; diff --git a/src/libs/glsl/glslengine.h b/src/libs/glsl/glslengine.h index 6b126111f6..7cf6e2d164 100644 --- a/src/libs/glsl/glslengine.h +++ b/src/libs/glsl/glslengine.h @@ -71,7 +71,7 @@ template <typename Type> class TypeTable { public: - struct Compare: std::binary_function<Type, Type, bool> { + struct Compare { bool operator()(const Type &value, const Type &other) const { return value.isLessThan(&other); } diff --git a/src/libs/qtcreatorcdbext/containers.cpp b/src/libs/qtcreatorcdbext/containers.cpp index 1248fca175..128f450caf 100644 --- a/src/libs/qtcreatorcdbext/containers.cpp +++ b/src/libs/qtcreatorcdbext/containers.cpp @@ -245,7 +245,7 @@ AbstractSymbolGroupNodePtrVector linkedListChildList(SymbolGroupValue headNode, } // Helper function for linkedListChildList that returns a member by name -class MemberByName : public std::unary_function<const SymbolGroupValue &, SymbolGroupValue> +class MemberByName { public: explicit MemberByName(const char *name) : m_name(name) {} diff --git a/src/libs/qtcreatorcdbext/stringutils.h b/src/libs/qtcreatorcdbext/stringutils.h index 89316d7e9a..e8297d44a4 100644 --- a/src/libs/qtcreatorcdbext/stringutils.h +++ b/src/libs/qtcreatorcdbext/stringutils.h @@ -52,7 +52,7 @@ void split(const std::string &s, char sep, Iterator it) // A boolean predicate that can be used for grepping sequences // of strings for a 'needle' substring. -class SubStringPredicate : public std::unary_function<const std::string &, bool> +class SubStringPredicate { public: explicit SubStringPredicate(const char *needle) : m_needle(needle) {} diff --git a/src/libs/qtcreatorcdbext/symbolgroup.cpp b/src/libs/qtcreatorcdbext/symbolgroup.cpp index 5ea3e8930e..8404f0d77c 100644 --- a/src/libs/qtcreatorcdbext/symbolgroup.cpp +++ b/src/libs/qtcreatorcdbext/symbolgroup.cpp @@ -251,7 +251,7 @@ std::string SymbolGroup::debug(const std::string &iname, typedef std::pair<unsigned, std::string> InamePathEntry; -struct InamePathEntryLessThan : public std::binary_function<InamePathEntry, InamePathEntry, bool> { +struct InamePathEntryLessThan { bool operator()(const InamePathEntry &i1, const InamePathEntry& i2) const { if (i1.first < i2.first) diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index 776d7aa66f..001dd70a05 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -801,7 +801,7 @@ QTextStream &operator<<(QTextStream &s, const FileName &fn) #ifdef Q_OS_WIN template <> -void withNTFSPermissions(const std::function<void()> &task) +void withNtfsPermissions(const std::function<void()> &task) { qt_ntfs_permission_lookup++; task(); diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h index b0068f4341..011069e118 100644 --- a/src/libs/utils/fileutils.h +++ b/src/libs/utils/fileutils.h @@ -51,7 +51,7 @@ class QWidget; QTCREATOR_UTILS_EXPORT QDebug operator<<(QDebug dbg, const Utils::FileName &c); -// for withNTFSPermissions +// for withNtfsPermissions #ifdef Q_OS_WIN extern Q_CORE_EXPORT int qt_ntfs_permission_lookup; #endif @@ -135,7 +135,7 @@ public: #ifdef Q_OS_WIN template <typename T> -T withNTFSPermissions(const std::function<T()> &task) +T withNtfsPermissions(const std::function<T()> &task) { qt_ntfs_permission_lookup++; T result = task(); @@ -144,12 +144,12 @@ T withNTFSPermissions(const std::function<T()> &task) } template <> -QTCREATOR_UTILS_EXPORT void withNTFSPermissions(const std::function<void()> &task); +QTCREATOR_UTILS_EXPORT void withNtfsPermissions(const std::function<void()> &task); #else // Q_OS_WIN template <typename T> -T withNTFSPermissions(const std::function<T()> &task) +T withNtfsPermissions(const std::function<T()> &task) { return task(); } diff --git a/src/libs/utils/smallstringview.h b/src/libs/utils/smallstringview.h index 0d8600e5de..7881500ce6 100644 --- a/src/libs/utils/smallstringview.h +++ b/src/libs/utils/smallstringview.h @@ -39,9 +39,7 @@ using enable_if_has_char_data_pointer = typename std::enable_if_t< std::is_same< std::remove_const_t< std::remove_pointer_t< - std::result_of_t< - decltype(&String::data)(String) - > + decltype(std::declval<const String>().data()) > >, char>::value , int>; |