From ca47896204482bf4a6979e3838bf7f09f61cebeb Mon Sep 17 00:00:00 2001
From: giy <giy@omp-system.ru>
Date: Fri, 02 Sep 2022 14:16:56 +0300
Subject: [PATCH] Обновление до версии 2.9.0

---
 QtVsTools.Core/QMakeConf.cs |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/QtVsTools.Core/QMakeConf.cs b/QtVsTools.Core/QMakeConf.cs
index c66a6c6..c719314 100644
--- a/QtVsTools.Core/QMakeConf.cs
+++ b/QtVsTools.Core/QMakeConf.cs
@@ -29,13 +29,14 @@
 using System;
 using System.Collections;
 using System.IO;
+using Microsoft.VisualStudio.Shell;
 
 namespace QtVsTools.Core
 {
     public class QMakeConf
     {
-        public Hashtable Entries { get; private set; }
-        public string QMakeSpecDirectory { get; private set; }
+        public Hashtable Entries { get; }
+        public string QMakeSpecDirectory { get; }
 
         public QMakeConf(VersionInformation versionInfo, QMakeQuery qmakeQuery = null)
         {
@@ -64,6 +65,17 @@
 
                 qmakeConf = Path.Combine(qtPrefix, qtArchData, "mkspecs", qmakeXSpec, "qmake.conf");
 
+                if (!File.Exists(qmakeConf)) {
+                    // Check if this is a shadow build of Qt.
+                    qtPrefix = qmakeQuery["QT_INSTALL_PREFIX/src"];
+                    if (string.IsNullOrEmpty(qtPrefix))
+                        throw new QtVSException("qmake error: no value for QT_INSTALL_PREFIX/src");
+                    qtArchData = qmakeQuery["QT_INSTALL_ARCHDATA/src"];
+                    if (string.IsNullOrEmpty(qtArchData))
+                        throw new QtVSException("qmake error: no value for QT_INSTALL_ARCHDATA/src");
+
+                    qmakeConf = Path.Combine(qtPrefix, qtArchData, "mkspecs", qmakeXSpec, "qmake.conf");
+                }
                 if (!File.Exists(qmakeConf))
                     throw new QtVSException("qmake.conf expected at " + qmakeConf + " not found");
             }

--
Gitblit v1.9.1