diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp
index ed754db15caaf62967975f1daacd08dd5a20ef0b..5150152aaef3e50c6f23c75a06f8fc4cc45ded21 100644
--- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp
+++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp
@@ -128,18 +128,8 @@ QString DesktopQmakeRunConfiguration::disabledReason() const
 
 void DesktopQmakeRunConfiguration::proFileUpdated(QmakeProFileNode *pro, bool success, bool parseInProgress)
 {
-    LocalEnvironmentAspect *aspect = extraAspect<LocalEnvironmentAspect>();
-    QTC_ASSERT(aspect, return);
-
-    if (m_proFilePath != pro->path()) {
-        if (!parseInProgress) {
-            // We depend on all .pro files for the LD_LIBRARY_PATH so we emit a signal for all .pro files
-            // This can be optimized by checking whether LD_LIBRARY_PATH changed
-            aspect->buildEnvironmentHasChanged();
-        }
+    if (m_proFilePath != pro->path())
         return;
-    }
-
     bool enabled = isEnabled();
     QString reason = disabledReason();
     m_parseSuccess = success;
@@ -149,10 +139,21 @@ void DesktopQmakeRunConfiguration::proFileUpdated(QmakeProFileNode *pro, bool su
 
     if (!parseInProgress) {
         emit effectiveTargetInformationChanged();
+        LocalEnvironmentAspect *aspect = extraAspect<LocalEnvironmentAspect>();
+        QTC_ASSERT(aspect, return);
         aspect->buildEnvironmentHasChanged();
     }
 }
 
+void DesktopQmakeRunConfiguration::proFileEvaluated()
+{
+    // We depend on all .pro files for the LD_LIBRARY_PATH so we emit a signal for all .pro files
+    // This can be optimized by checking whether LD_LIBRARY_PATH changed
+    LocalEnvironmentAspect *aspect = extraAspect<LocalEnvironmentAspect>();
+    QTC_ASSERT(aspect, return);
+    aspect->buildEnvironmentHasChanged();
+}
+
 void DesktopQmakeRunConfiguration::ctor()
 {
     setDefaultDisplayName(defaultDisplayName());
@@ -163,6 +164,8 @@ void DesktopQmakeRunConfiguration::ctor()
     QmakeProject *project = static_cast<QmakeProject *>(target()->project());
     connect(project, &QmakeProject::proFileUpdated,
             this, &DesktopQmakeRunConfiguration::proFileUpdated);
+    connect(project, &QmakeProject::proFilesEvaluated,
+            this, &DesktopQmakeRunConfiguration::proFileEvaluated);
     connect(target(), &Target::kitChanged,
             this, &DesktopQmakeRunConfiguration::kitChanged);
 }
diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h
index c7c30cb669c78c6aa8a3ab56c8d127d54660dfeb..76db97837c40dae81478d07511b71af26cee9b22 100644
--- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h
+++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h
@@ -107,6 +107,7 @@ signals:
 private slots:
     void kitChanged();
     void proFileUpdated(QmakeProjectManager::QmakeProFileNode *pro, bool success, bool parseInProgress);
+    void proFileEvaluated();
 
 protected:
     DesktopQmakeRunConfiguration(ProjectExplorer::Target *parent, DesktopQmakeRunConfiguration *source);