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

---
 QtMSBuild/QtMsBuild/qt_private.props |  116 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 97 insertions(+), 19 deletions(-)

diff --git a/QtMSBuild/QtMsBuild/qt_private.props b/QtMSBuild/QtMsBuild/qt_private.props
index c1303e0..eb76f1f 100644
--- a/QtMSBuild/QtMsBuild/qt_private.props
+++ b/QtMSBuild/QtMsBuild/qt_private.props
@@ -57,6 +57,18 @@
 
   <!--
   /////////////////////////////////////////////////////////////////////////////////////////////////
+  // Check if design-time build
+  // -->
+  <PropertyGroup>
+    <QtDesignTimeBuild>false</QtDesignTimeBuild>
+    <QtDesignTimeBuild
+      Condition="'$(DesignTimeBuild)' == 'true'
+              OR '$(QtVSToolsBuild)'  == 'true'"
+      >true</QtDesignTimeBuild>
+  </PropertyGroup>
+
+  <!--
+  /////////////////////////////////////////////////////////////////////////////////////////////////
   // Setup Qt installation path
   // -->
   <PropertyGroup Condition="'$(QtVsProjectSettings)' == 'true'">
@@ -112,21 +124,29 @@
       >$([System.String]::Copy($([System.IO.File]::ReadAllText('$(QtVarsIndexPathDesignTime)'))).Replace('&#xD;&#xA;',''))</QtVarsDesignTime>
   </PropertyGroup>
 
-  <!--// Import Qt variables (full build) -->
-  <Import
-    Condition="'$(DesignTimeBuild)' != 'true' AND Exists('$(QtVarsFilePath)')"
-    Project="$(QtVarsFilePath)"/>
+  <PropertyGroup>
+    <!--// Path to Qt variables .props: full build -->
+    <QtVarsImportPath
+      Condition="'$(QtDesignTimeBuild)' != 'true'
+        AND Exists('$(QtVarsFilePath)')"
+      >$(QtVarsFilePath)</QtVarsImportPath>
 
-  <!--// Import Qt variables (design-time build) -->
-  <Import
-    Condition="'$(DesignTimeBuild)' == 'true' AND Exists('$(QtVarsDesignTime)')"
-    Project="$(QtVarsDesignTime)"/>
+    <!--// Path to Qt variables .props: design-time build -->
+    <QtVarsImportPath
+      Condition="'$(QtDesignTimeBuild)' == 'true'
+        AND Exists('$(QtVarsDesignTime)')"
+      >$(QtVarsDesignTime)</QtVarsImportPath>
 
-  <!--// Import Qt variables (fall-back) -->
-  <Import
-    Condition=
-"'$(DesignTimeBuild)' == 'true' AND !Exists('$(QtVarsDesignTime)') AND Exists('$(QtVarsFilePath)')"
-    Project="$(QtVarsFilePath)"/>
+    <!--// Path to Qt variables .props: fall-back -->
+    <QtVarsImportPath
+      Condition="'$(QtDesignTimeBuild)' == 'true'
+        AND !Exists('$(QtVarsDesignTime)')
+        AND  Exists('$(QtVarsFilePath)')"
+      >$(QtVarsFilePath)</QtVarsImportPath>
+  </PropertyGroup>
+
+  <!--// Import Qt vars property file -->
+  <Import Condition="Exists('$(QtVarsImportPath)')" Project="$(QtVarsImportPath)"/>
 
   <!--
   /////////////////////////////////////////////////////////////////////////////////////////////////
@@ -175,6 +195,61 @@
 
   <!--
   /////////////////////////////////////////////////////////////////////////////////////////////////
+  // Normalize QtVars (incl. backup)
+  // -->
+  <PropertyGroup>
+    <QtVars
+      Condition="'$(QtVars)' !=''"
+      >$(QtVars
+        .Replace(' ', '')
+        .Replace('%0a', '')
+        .Replace('%0d', '')
+        .Trim(';'))</QtVars>
+    <QtBkup_QtVars
+      Condition="'$(QtBkup_QtVars)' !=''"
+      >$(QtBkup_QtVars
+        .Replace(' ', '')
+        .Replace('%0a', '')
+        .Replace('%0d', '')
+        .Trim(';'))</QtBkup_QtVars>
+  </PropertyGroup>
+
+  <!--
+  /////////////////////////////////////////////////////////////////////////////////////////////////
+  // Figure out depending on the user settings if we need to link the .natvis file into the PDB
+  // file. Reads the content of qconfig.pri to find Qt's namespace if set. Predefines the path to
+  // the .natvis file used during link which corresponds to the final output generated by the
+  // QtNatvis target.
+  // Evaluation order: first look at the project settings, if empty take from the global settings.
+  // -->
+  <PropertyGroup>
+    <LinkNatvisFile>$(QtLinkNatvisFile)</LinkNatvisFile>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(QtLinkNatvisFile)' == ''">
+    <LinkNatvisRegValue>$([MSBuild]::GetRegistryValue(
+      'HKEY_CURRENT_USER\SOFTWARE\Digia\Qt5VS2017','LinkNatvis'
+      ))</LinkNatvisRegValue>
+    <LinkNatvisFile>true</LinkNatvisFile>
+    <LinkNatvisFile Condition="'$(LinkNatvisRegValue)' == '0'">false</LinkNatvisFile>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)' == 'Debug'
+                            AND '$(LinkNatvisFile)' == 'true' AND '$(QtInstallDir)' != ''">
+    <QConfigPriPath>$([System.IO.Path]::Combine('$(QtInstallDir)',
+        'mkspecs', 'qconfig.pri'
+      ))</QConfigPriPath>
+    <QConfigPriContent>$([MSBuild]::Unescape(
+      $([System.IO.File]::ReadAllText('$(QConfigPriPath)')
+        .Replace('&#xD;&#xA;', ';')
+        .Replace(' =', '=')
+        .Replace('= ', '='))
+      ))</QConfigPriContent>
+    <QtNamespace>$([System.Text.RegularExpressions.Regex]::Match($(QConfigPriContent),
+        'QT_NAMESPACE=([a-zA-Z0-9]+)').get_Groups().get_Item(1)
+      )</QtNamespace>
+  </PropertyGroup>
+
+  <!--
+  /////////////////////////////////////////////////////////////////////////////////////////////////
   // Default item metadata
   // -->
   <ItemDefinitionGroup>
@@ -186,24 +261,27 @@
       <PreprocessorDefinitions Condition="'$(QtQMLDebugEnable)' == 'true'"
         >QT_QML_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <AdditionalIncludeDirectories Condition="'$(Qt_INCLUDEPATH_)' != ''"
-        >$(Qt_INCLUDEPATH_);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+        >%(AdditionalIncludeDirectories);$(Qt_INCLUDEPATH_)</AdditionalIncludeDirectories>
       <LanguageStandard Condition="'$(Qt_STDCPP_)' != ''"
         >$(Qt_STDCPP_)</LanguageStandard>
-      <AdditionalOptions Condition="'$(Qt_CL_OPTIONS_)' != ''"
-        >$(Qt_CL_OPTIONS_) %(AdditionalOptions)</AdditionalOptions>
+      <RuntimeLibrary Condition="'$(Qt_RUNTIME_)' != ''"
+        >$(Qt_RUNTIME_)</RuntimeLibrary>
     </ClCompile>
 
     <!--// Linker (.obj files) -->
     <Link>
       <AdditionalDependencies Condition="'$(Qt_LIBS_)' != ''"
-        >$(Qt_LIBS_);%(AdditionalDependencies)</AdditionalDependencies>
+        >%(AdditionalDependencies);$(Qt_LIBS_)</AdditionalDependencies>
       <AdditionalLibraryDirectories Condition="'$(Qt_LIBPATH_)' != ''"
-        >$(Qt_LIBPATH_);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+        >%(AdditionalLibraryDirectories);$(Qt_LIBPATH_)</AdditionalLibraryDirectories>
       <SharedLibrarySearchPath Condition="'$(Qt_LIBPATH_)' != ''"
-        >$(Qt_LIBPATH_);%(SharedLibrarySearchPath)</SharedLibrarySearchPath>
+        >%(SharedLibrarySearchPath);$(Qt_LIBPATH_)</SharedLibrarySearchPath>
       <AdditionalOptions Condition="'$(Qt_LINK_OPTIONS_)' != ''"
         >$(Qt_LINK_OPTIONS_) %(AdditionalOptions)</AdditionalOptions>
+      <AdditionalOptions Condition="'$(Configuration)' == 'Debug' AND '$(LinkNatvisFile)' == 'true'"
+        >/NATVIS:&quot;$(IntDir)\qt.natvis&quot; %(AdditionalOptions)</AdditionalOptions>
     </Link>
+
   </ItemDefinitionGroup>
 
   <!--

--
Gitblit v1.9.1