diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 87f2d8b60e6..d8714476ed6 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -870,6 +870,7 @@ FilePath AndroidConfig::qtLiveApkPath() const /////////////////////////////////// void AndroidConfigurations::setConfig(const AndroidConfig &devConfigs) { + emit m_instance->aboutToUpdate(); m_instance->m_config = devConfigs; m_instance->save(); diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index aba533fc279..c19e68dbf44 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -209,6 +209,7 @@ public: static QProcessEnvironment toolsEnvironment(const AndroidConfig &config); signals: + void aboutToUpdate(); void updated(); private: diff --git a/src/plugins/android/androidqtversion.cpp b/src/plugins/android/androidqtversion.cpp index ff8606a1e0a..48aeab8e543 100644 --- a/src/plugins/android/androidqtversion.cpp +++ b/src/plugins/android/androidqtversion.cpp @@ -49,7 +49,12 @@ namespace Internal { AndroidQtVersion::AndroidQtVersion() : QtSupport::BaseQtVersion() + , m_guard(std::make_unique()) { + QObject::connect(AndroidConfigurations::instance(), + &AndroidConfigurations::aboutToUpdate, + m_guard.get(), + [this] { resetCache(); }); } bool AndroidQtVersion::isValid() const diff --git a/src/plugins/android/androidqtversion.h b/src/plugins/android/androidqtversion.h index c9869608191..5098f533565 100644 --- a/src/plugins/android/androidqtversion.h +++ b/src/plugins/android/androidqtversion.h @@ -58,6 +58,7 @@ public: protected: void parseMkSpec(ProFileEvaluator *) const override; private: + std::unique_ptr m_guard; mutable QStringList m_androidAbis; mutable int m_minNdk = -1; }; diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index 13bab8c6f9c..95f65b12eab 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -2169,6 +2169,11 @@ Abis BaseQtVersion::qtAbisFromLibrary(const FilePathList &coreLibraries) return res; } +void BaseQtVersion::resetCache() const +{ + d->m_hasQtAbis = false; + d->m_mkspecReadUpToDate = false; +} // QtVersionFactory diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index 8de93f138bc..6d0e13b5cdf 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -245,6 +245,8 @@ protected: // helper function for desktop and simulator to figure out the supported abis based on the libraries static ProjectExplorer::Abis qtAbisFromLibrary(const Utils::FilePathList &coreLibraries); + void resetCache() const; + void ensureMkSpecParsed() const; virtual void parseMkSpec(ProFileEvaluator *) const;