diff --git a/src/libs/utils/environment.cpp b/src/libs/utils/environment.cpp index d6d0124d003..b31d767da28 100644 --- a/src/libs/utils/environment.cpp +++ b/src/libs/utils/environment.cpp @@ -35,6 +35,30 @@ #include #include #include +#include + +class SystemEnvironment : public Utils::Environment +{ +public: + SystemEnvironment() + : Environment(QProcess::systemEnvironment()) + { +#ifdef Q_OS_LINUX + QString ldLibraryPath = value(QLatin1String("LD_LIBRARY_PATH")); + QDir lib(QCoreApplication::applicationDirPath()); + lib.cd("../lib"); + QString toReplace = lib.path(); + lib.cd("qtcreator"); + toReplace.append(QLatin1String(":")); + toReplace.append(lib.path()); + + if (ldLibraryPath.startsWith(toReplace)) + set(QLatin1String("LD_LIBRARY_PATH"), ldLibraryPath.remove(0, toReplace.length())); +#endif + } +}; + +Q_GLOBAL_STATIC(SystemEnvironment, staticSystemEnvironment) namespace Utils { @@ -198,7 +222,7 @@ void Environment::prependOrSetLibrarySearchPath(const QString &value) Environment Environment::systemEnvironment() { - return Environment(QProcess::systemEnvironment()); + return *staticSystemEnvironment(); } void Environment::clear() diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index f49a87ae54d..e40eff6225c 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -256,7 +256,7 @@ Utils::Environment BuildConfiguration::baseEnvironment() const { Utils::Environment result; if (useSystemEnvironment()) - result = Utils::Environment(QProcess::systemEnvironment()); + result = Utils::Environment::systemEnvironment(); return result; }