aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Costa <miguel.costa@qt.io>2020-12-11 16:58:06 +0100
committerMiguel Costa <miguel.costa@qt.io>2020-12-17 13:20:30 +0000
commitcb9ec156845a9efc163a9c67d7a54c8ca790e805 (patch)
treece0b45168cccc98f5c157a5ca1730ee94d796976
parent3ff1f75dc878bd76186e1925f54c68ee31c42afc (diff)
Integrate Qt.props in the VS Property Manager
The Qt property definitions file (Qt.props) will now be shown in the evaluation list of the Property Manager window. This allows the user to customize the order of evaluation of Qt.props in relation to other property files loaded during the build, thereby defining the correct dependency between Qt properties and other build settings. Previously, the order of evaluation of Qt.props was fixed and could only be changed by manually editing the project file's XML. Allowing Qt.props to be manipulated in the Property Manager window will enable the user to define properties and default metadata within the Qt.props itself. To ensure these custom definitions are not lost when installing Qt/MSBuild files, the Qt.props file will no longer be replaced during start-up. Task-number: QTVSADDINBUG-748 Change-Id: Icaee64772f41300a1e8faad131e3b09b8185fc3b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--src/config/12.0/source.extension.vsixmanifest_TT3
-rw-r--r--src/qtmsbuild/Qt.props59
-rw-r--r--src/qtmsbuild/QtMSBuild.csproj6
-rw-r--r--src/qtmsbuild/qt.targets8
-rw-r--r--src/qtmsbuild/qt_private.props3
-rw-r--r--src/qtmsbuild/qt_settings.xml1
-rw-r--r--src/qtmsbuild/qt_settings_vs2015.xml1
-rw-r--r--src/qttemplates/console/console.vcxproj11
-rw-r--r--src/qttemplates/designer/designer.vcxproj11
-rw-r--r--src/qttemplates/empty/empty.vcxproj11
-rw-r--r--src/qttemplates/gui/gui.vcxproj11
-rw-r--r--src/qttemplates/lib/lib.vcxproj11
-rw-r--r--src/qttemplates/quick/quick.vcxproj11
-rw-r--r--src/qttemplates/server/server.vcxproj11
-rw-r--r--src/qtvstools.core/Resources.cs2
-rw-r--r--src/qtvstools/QtVsTools.csproj10
-rw-r--r--src/qtvstools/Vsix.cs41
-rw-r--r--src/qtwizard/Wizards/ProjectWizard/ProjectTemplateWizard.cs1
18 files changed, 156 insertions, 56 deletions
diff --git a/src/config/12.0/source.extension.vsixmanifest_TT b/src/config/12.0/source.extension.vsixmanifest_TT
index f8870814..9ec4a28c 100644
--- a/src/config/12.0/source.extension.vsixmanifest_TT
+++ b/src/config/12.0/source.extension.vsixmanifest_TT
@@ -139,6 +139,9 @@
Type="File" d:Source="File" Path="qtmsbuild\qt.props"
d:VsixSubPath="qtmsbuild" />
<Asset
+ Type="File" d:Source="File" Path="qtmsbuild\qt_private.props"
+ d:VsixSubPath="qtmsbuild" />
+ <Asset
Type="File" d:Source="File" Path="qtmsbuild\qt.targets"
d:VsixSubPath="qtmsbuild" />
<Asset
diff --git a/src/qtmsbuild/Qt.props b/src/qtmsbuild/Qt.props
new file mode 100644
index 00000000..3ad337af
--- /dev/null
+++ b/src/qtmsbuild/Qt.props
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt VS Tools.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+<!--
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Item type definition and default values
+// -->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!--
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ // Import private Qt property definitions
+ // -->
+ <ImportGroup Label="Qt">
+ <Import Project="$(MSBuildThisFileDirectory)\qt_private.props"/>
+ </ImportGroup>
+ <!--
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ // User-defined settings
+ // -->
+ <PropertyGroup Label="UserMacros">
+ <!-- Placeholder for user macros written by VS Property Manager -->
+ </PropertyGroup>
+ <PropertyGroup>
+ <!-- Placeholder for properties written by VS Property Manager -->
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <!-- Placeholder for default metadata written by VS Property Manager -->
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <!-- Placeholder for items written by VS Property Manager -->
+ </ItemGroup>
+</Project>
diff --git a/src/qtmsbuild/QtMSBuild.csproj b/src/qtmsbuild/QtMSBuild.csproj
index 84ec9583..3407e054 100644
--- a/src/qtmsbuild/QtMSBuild.csproj
+++ b/src/qtmsbuild/QtMSBuild.csproj
@@ -50,7 +50,11 @@
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType>
</Content>
- <Content Include="qt.props">
+ <Content Include="Qt.props">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ <SubType>Designer</SubType>
+ </Content>
+ <Content Include="qt_private.props">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType>
</Content>
diff --git a/src/qtmsbuild/qt.targets b/src/qtmsbuild/qt.targets
index 0d9b2fc6..3a99ed22 100644
--- a/src/qtmsbuild/qt.targets
+++ b/src/qtmsbuild/qt.targets
@@ -36,6 +36,14 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
/////////////////////////////////////////////////////////////////////////////////////////////////
+ // Fail-safe import of private definitions
+ // -->
+ <Import
+ Condition="'$(QtPrivateLoaded)' != 'true'"
+ Project="$(MSBuildThisFileDirectory)\qt_private.props"/>
+
+ <!--
+ /////////////////////////////////////////////////////////////////////////////////////////////////
// Defaults for project version constants
// -->
<PropertyGroup>
diff --git a/src/qtmsbuild/qt_private.props b/src/qtmsbuild/qt_private.props
index 159d2dc7..a0bb3b70 100644
--- a/src/qtmsbuild/qt_private.props
+++ b/src/qtmsbuild/qt_private.props
@@ -34,6 +34,9 @@
// Item type definition and default values
// -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <QtPrivateLoaded>true</QtPrivateLoaded>
+ </PropertyGroup>
<!--
/////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/qtmsbuild/qt_settings.xml b/src/qtmsbuild/qt_settings.xml
index e8b53546..b6a25d93 100644
--- a/src/qtmsbuild/qt_settings.xml
+++ b/src/qtmsbuild/qt_settings.xml
@@ -59,6 +59,7 @@
<EnumValue Name="QtVS_v301" DisplayName="Version 3.1"/>
<EnumValue Name="QtVS_v302" DisplayName="Version 3.2"/>
<EnumValue Name="QtVS_v303" DisplayName="Version 3.3"/>
+ <EnumValue Name="QtVS_v304" DisplayName="Version 3.4"/>
</EnumProperty>
<DynamicEnumProperty
Name="QtInstall"
diff --git a/src/qtmsbuild/qt_settings_vs2015.xml b/src/qtmsbuild/qt_settings_vs2015.xml
index a42f9bfd..4170d399 100644
--- a/src/qtmsbuild/qt_settings_vs2015.xml
+++ b/src/qtmsbuild/qt_settings_vs2015.xml
@@ -59,6 +59,7 @@
<EnumValue Name="QtVS_v301" DisplayName="Version 3.1"/>
<EnumValue Name="QtVS_v302" DisplayName="Version 3.2"/>
<EnumValue Name="QtVS_v303" DisplayName="Version 3.3"/>
+ <EnumValue Name="QtVS_v304" DisplayName="Version 3.4"/>
</EnumProperty>
<DynamicEnumProperty
Name="QtInstall"
diff --git a/src/qttemplates/console/console.vcxproj b/src/qttemplates/console/console.vcxproj
index bbb86c5a..fbd4048a 100644
--- a/src/qttemplates/console/console.vcxproj
+++ b/src/qttemplates/console/console.vcxproj
@@ -13,6 +13,10 @@ $Globals$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
$Configurations$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
<Target Name="QtMsBuildNotFound"
BeforeTargets="CustomBuild;ClCompile"
Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@@ -23,14 +27,7 @@ $Configurations$
<ImportGroup Label="Shared" />
$PropertySheets$
<PropertyGroup Label="UserMacros" />
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
- <Import Project="$(QtMsBuild)\qt_defaults.props" />
- </ImportGroup>
$Properties$
-$QtSettings$
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
- <Import Project="$(QtMsBuild)\qt.props" />
- </ImportGroup>
$BuildSettings$
<ItemGroup>
<ClCompile Include="main.cpp" />
diff --git a/src/qttemplates/designer/designer.vcxproj b/src/qttemplates/designer/designer.vcxproj
index 0ecc97b8..f32dc6e3 100644
--- a/src/qttemplates/designer/designer.vcxproj
+++ b/src/qttemplates/designer/designer.vcxproj
@@ -13,6 +13,10 @@ $Globals$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
$Configurations$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
<Target Name="QtMsBuildNotFound"
BeforeTargets="CustomBuild;ClCompile"
Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@@ -23,14 +27,7 @@ $Configurations$
<ImportGroup Label="Shared" />
$PropertySheets$
<PropertyGroup Label="UserMacros" />
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
- <Import Project="$(QtMsBuild)\qt_defaults.props" />
- </ImportGroup>
$Properties$
-$QtSettings$
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
- <Import Project="$(QtMsBuild)\qt.props" />
- </ImportGroup>
$BuildSettings$
<ItemGroup>
<QtMoc Include="$headerfilename$"/>
diff --git a/src/qttemplates/empty/empty.vcxproj b/src/qttemplates/empty/empty.vcxproj
index 658b695e..70c2cef5 100644
--- a/src/qttemplates/empty/empty.vcxproj
+++ b/src/qttemplates/empty/empty.vcxproj
@@ -13,6 +13,10 @@ $Globals$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
$Configurations$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
<Target Name="QtMsBuildNotFound"
BeforeTargets="CustomBuild;ClCompile"
Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@@ -23,14 +27,7 @@ $Configurations$
<ImportGroup Label="Shared" />
$PropertySheets$
<PropertyGroup Label="UserMacros" />
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
- <Import Project="$(QtMsBuild)\qt_defaults.props" />
- </ImportGroup>
$Properties$
-$QtSettings$
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
- <Import Project="$(QtMsBuild)\qt.props" />
- </ImportGroup>
$BuildSettings$
<ItemGroup>
$ProjectItems$
diff --git a/src/qttemplates/gui/gui.vcxproj b/src/qttemplates/gui/gui.vcxproj
index 0bd31e55..58731f3c 100644
--- a/src/qttemplates/gui/gui.vcxproj
+++ b/src/qttemplates/gui/gui.vcxproj
@@ -13,6 +13,10 @@ $Globals$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
$Configurations$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
<Target Name="QtMsBuildNotFound"
BeforeTargets="CustomBuild;ClCompile"
Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@@ -23,14 +27,7 @@ $Configurations$
<ImportGroup Label="Shared" />
$PropertySheets$
<PropertyGroup Label="UserMacros" />
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
- <Import Project="$(QtMsBuild)\qt_defaults.props" />
- </ImportGroup>
$Properties$
-$QtSettings$
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
- <Import Project="$(QtMsBuild)\qt.props" />
- </ImportGroup>
$BuildSettings$
<ItemGroup>
<QtRcc Include="$qrcfilename$"/>
diff --git a/src/qttemplates/lib/lib.vcxproj b/src/qttemplates/lib/lib.vcxproj
index 44b7ee57..e3f38124 100644
--- a/src/qttemplates/lib/lib.vcxproj
+++ b/src/qttemplates/lib/lib.vcxproj
@@ -13,6 +13,10 @@ $Globals$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
$Configurations$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
<Target Name="QtMsBuildNotFound"
BeforeTargets="CustomBuild;ClCompile"
Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@@ -23,14 +27,7 @@ $Configurations$
<ImportGroup Label="Shared" />
$PropertySheets$
<PropertyGroup Label="UserMacros" />
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
- <Import Project="$(QtMsBuild)\qt_defaults.props" />
- </ImportGroup>
$Properties$
-$QtSettings$
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
- <Import Project="$(QtMsBuild)\qt.props" />
- </ImportGroup>
$BuildSettings$
<ItemGroup>
<ClInclude Include="$saveglobal$_global.h"/>
diff --git a/src/qttemplates/quick/quick.vcxproj b/src/qttemplates/quick/quick.vcxproj
index 68f9ed6c..17f6b66a 100644
--- a/src/qttemplates/quick/quick.vcxproj
+++ b/src/qttemplates/quick/quick.vcxproj
@@ -13,6 +13,10 @@ $Globals$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
$Configurations$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
<Target Name="QtMsBuildNotFound"
BeforeTargets="CustomBuild;ClCompile"
Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@@ -23,14 +27,7 @@ $Configurations$
<ImportGroup Label="Shared" />
$PropertySheets$
<PropertyGroup Label="UserMacros" />
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
- <Import Project="$(QtMsBuild)\qt_defaults.props" />
- </ImportGroup>
$Properties$
-$QtSettings$
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
- <Import Project="$(QtMsBuild)\qt.props" />
- </ImportGroup>
$BuildSettings$
<ItemGroup>
<ClCompile Include="main.cpp"/>
diff --git a/src/qttemplates/server/server.vcxproj b/src/qttemplates/server/server.vcxproj
index a83c5ff9..b2a0d838 100644
--- a/src/qttemplates/server/server.vcxproj
+++ b/src/qttemplates/server/server.vcxproj
@@ -13,6 +13,10 @@ $Globals$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
$Configurations$
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
<Target Name="QtMsBuildNotFound"
BeforeTargets="CustomBuild;ClCompile"
Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
@@ -23,14 +27,7 @@ $Configurations$
<ImportGroup Label="Shared" />
$PropertySheets$
<PropertyGroup Label="UserMacros" />
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
- <Import Project="$(QtMsBuild)\qt_defaults.props" />
- </ImportGroup>
$Properties$
-$QtSettings$
- <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
- <Import Project="$(QtMsBuild)\qt.props" />
- </ImportGroup>
$BuildSettings$
<ItemGroup>
<QtUic Include="$uifilename$" />
diff --git a/src/qtvstools.core/Resources.cs b/src/qtvstools.core/Resources.cs
index be807610..2bfced2b 100644
--- a/src/qtvstools.core/Resources.cs
+++ b/src/qtvstools.core/Resources.cs
@@ -83,7 +83,7 @@ namespace QtVsTools.Core
// Qt VS project tag and format version
public const string qtProjectKeyword = "QtVS";
- public const int qtProjectFormatVersion = 303;
+ public const int qtProjectFormatVersion = 304;
public static string QtVSVersionTag
=> string.Format("{0}_v{1}", qtProjectKeyword, qtProjectFormatVersion);
diff --git a/src/qtvstools/QtVsTools.csproj b/src/qtvstools/QtVsTools.csproj
index 1ec1d62a..af71661e 100644
--- a/src/qtvstools/QtVsTools.csproj
+++ b/src/qtvstools/QtVsTools.csproj
@@ -577,8 +577,14 @@
<IncludeInVSIX>true</IncludeInVSIX>
<SubType>Designer</SubType>
</Content>
- <Content Include="..\qtmsbuild\qt.props">
- <Link>QtMsBuild\qt.props</Link>
+ <Content Include="..\qtmsbuild\Qt.props">
+ <Link>QtMsBuild\Qt.props</Link>
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ <IncludeInVSIX>true</IncludeInVSIX>
+ <SubType>Designer</SubType>
+ </Content>
+ <Content Include="..\qtmsbuild\qt_private.props">
+ <Link>QtMsBuild\qt_private.props</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<IncludeInVSIX>true</IncludeInVSIX>
<SubType>Designer</SubType>
diff --git a/src/qtvstools/Vsix.cs b/src/qtvstools/Vsix.cs
index 298e97b4..7a40e2a7 100644
--- a/src/qtvstools/Vsix.cs
+++ b/src/qtvstools/Vsix.cs
@@ -130,6 +130,8 @@ namespace QtVsTools
static EventWaitHandle initDone = new EventWaitHandle(false, EventResetMode.ManualReset);
static Vsix instance = null;
+ const StringComparison IGNORE_CASE = StringComparison.InvariantCultureIgnoreCase;
+
/// <summary>
/// Gets the instance of the package.
/// </summary>
@@ -223,6 +225,10 @@ namespace QtVsTools
PkgInstallPath = Path.GetDirectoryName(
Uri.UnescapeDataString(uri.AbsolutePath)) + @"\";
+ ///////////
+ // Install Qt/MSBuild files from package folder to standard location
+ // -> %LOCALAPPDATA%\QtMsBuild
+ //
var QtMsBuildDefault = Path.Combine(
Environment.GetEnvironmentVariable("LocalAppData"), "QtMsBuild");
try {
@@ -239,16 +245,45 @@ namespace QtVsTools
var targetPathTemp = targetPath + ".tmp";
Directory.CreateDirectory(Path.GetDirectoryName(targetPath));
File.Copy(sourcePath, targetPathTemp, overwrite: true);
- if (File.Exists(targetPath))
- File.Replace(targetPathTemp, targetPath, null);
- else
+ ////////
+ // Copy Qt/MSBuild files to standard location, taking care not to
+ // overwrite the updated Qt props file, possibly containing user-defined
+ // build settings (written by the VS Property Manager). This file is
+ // recognized as being named "Qt.props" and containing the import
+ // statement for qt_private.props.
+ //
+ string qtPrivateImport =
+ @"<Import Project=""$(MSBuildThisFileDirectory)\qt_private.props""";
+ Func<string, bool> isUpdateQtProps = (string filePath) =>
+ {
+ return Path.GetFileName(targetPath).Equals("Qt.props", IGNORE_CASE)
+ && File.ReadAllText(targetPath).Contains(qtPrivateImport);
+ };
+ if (!File.Exists(targetPath)) {
+ // Target file does not exist
+ // -> Create new
File.Move(targetPathTemp, targetPath);
+ } else if (!isUpdateQtProps(targetPath)) {
+ // Target file is not the updated Qt.props
+ // -> Overwrite
+ File.Replace(targetPathTemp, targetPath, null);
+ } else {
+ // Target file *is* the updated Qt.props; skip!
+ // -> Remove temp file
+ File.Delete(targetPathTemp);
+ }
}
}
} catch {
+ /////////
+ // Error copying files to standard location.
+ // -> FAIL-SAFE: use source folder (within package) as the standard location
QtMsBuildDefault = Path.Combine(PkgInstallPath, "QtMsBuild");
}
+ ///////
+ // Set %QTMSBUILD% by default to point to standard location of Qt/MSBuild
+ //
var QtMsBuildPath = Environment.GetEnvironmentVariable("QtMsBuild");
if (string.IsNullOrEmpty(QtMsBuildPath))
{
diff --git a/src/qtwizard/Wizards/ProjectWizard/ProjectTemplateWizard.cs b/src/qtwizard/Wizards/ProjectWizard/ProjectTemplateWizard.cs
index ca9f7d9a..dca0dafd 100644
--- a/src/qtwizard/Wizards/ProjectWizard/ProjectTemplateWizard.cs
+++ b/src/qtwizard/Wizards/ProjectWizard/ProjectTemplateWizard.cs
@@ -447,6 +447,7 @@ namespace QtVsTools.Wizards.ProjectWizard
xml.AppendLine(string.Format(@"
<ImportGroup Label=""PropertySheets"" Condition=""'$(Configuration)|$(Platform)' == '{0}|{1}'"">
<Import Project=""$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"" Condition=""exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"" Label=""LocalAppDataPlatform"" />
+ <Import Project=""$(QtMsBuild)\Qt.props"" />
</ImportGroup>",
/*{0}*/ c.Name,
/*{1}*/ c.Platform));