aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qtmsbuild/qt.props2
-rw-r--r--src/qtmsbuild/qt_globals.targets19
-rw-r--r--src/qtmsbuild/qt_vars.targets52
-rw-r--r--src/qtprojectlib/MsBuildProject.cs2
-rw-r--r--src/qtvstools/QtMsBuild/Components/QtProjectTracker.cs4
5 files changed, 30 insertions, 49 deletions
diff --git a/src/qtmsbuild/qt.props b/src/qtmsbuild/qt.props
index 28046430..3f4f7ff9 100644
--- a/src/qtmsbuild/qt.props
+++ b/src/qtmsbuild/qt.props
@@ -117,7 +117,7 @@
<QtVarsFilePath
>$(QtVarsOutputDir)\$(QtVarsFileName)</QtVarsFilePath>
<QtVarsIndexPathDesignTime
- >$(QtVarsOutputDir)\$(QtVarsFileNameWithoutExt).designtime.idx</QtVarsIndexPathDesignTime>
+ >$(TEMP)\$(ProjectGuid.Replace('{','').Replace('}','')).$(ProjectName).designtime.idx</QtVarsIndexPathDesignTime>
<QtVarsDesignTime Condition="Exists('$(QtVarsIndexPathDesignTime)')"
>$([System.String]::Copy($([System.IO.File]::ReadAllText('$(QtVarsIndexPathDesignTime)'))).Replace('&#xD;&#xA;',''))</QtVarsDesignTime>
</PropertyGroup>
diff --git a/src/qtmsbuild/qt_globals.targets b/src/qtmsbuild/qt_globals.targets
index 2822e9ba..2d7524f4 100644
--- a/src/qtmsbuild/qt_globals.targets
+++ b/src/qtmsbuild/qt_globals.targets
@@ -437,4 +437,23 @@
</ItemGroup>
</Target>
+ <!--
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ /// TARGET QtOuterBuild
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ // Root Qt target
+ // -->
+ <PropertyGroup Condition="'$(QtInnerBuild)' != 'true' AND '$(DesignTimeBuild)' != 'true'">
+ <BuildDependsOn>QtOuterBuild</BuildDependsOn>
+ </PropertyGroup>
+
+ <Target Name="QtOuterBuild" DependsOnTargets="$(QtOuterBuildDependsOn)">
+ <!--// Restart build in second MSBuild instance -->
+ <MSBuild
+ Projects="$(MSBuildProjectFullPath)"
+ Targets="Build"
+ Properties="QtInnerBuild=true;RandomFileName=$([System.IO.Path]::GetRandomFileName())">
+ </MSBuild>
+ </Target>
+
</Project>
diff --git a/src/qtmsbuild/qt_vars.targets b/src/qtmsbuild/qt_vars.targets
index fc6c8e3d..a41b3ba7 100644
--- a/src/qtmsbuild/qt_vars.targets
+++ b/src/qtmsbuild/qt_vars.targets
@@ -34,9 +34,8 @@
// -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <QtDependsOn>QtVarsPrepare;QtVars;$(QtDependsOn)</QtDependsOn>
- <QtSkipBuildTargets>QtSkipBuild;$(QtSkipBuildTargets)</QtSkipBuildTargets>
+ <PropertyGroup Condition="'$(QtVsProjectSettings)' == 'true'">
+ <QtOuterBuildDependsOn>QtVarsPrepare;QtVars;$(QtDependsOn)</QtOuterBuildDependsOn>
<CleanDependsOn>$(CleanDependsOn);QtVarsClean</CleanDependsOn>
</PropertyGroup>
@@ -338,36 +337,17 @@
<!--// In design-time, copy generated .props to randomly named file -->
<PropertyGroup>
<QtVarsDesignTimeNew
- Condition="'$(ErrorLevel)' == '0'"
- >$([System.IO.Path]::Combine('$(QtVarsOutputDir)',
- 'qtvars_$([System.IO.Path]::GetRandomFileName()).designtime.props'))</QtVarsDesignTimeNew>
+ Condition="'$(ErrorLevel)' == '0' AND '$(QtVSToolsBuild)' == 'true'"
+ >$([System.IO.Path]::Combine('$(TEMP)','$([System.IO.Path]::GetRandomFileName()).designtime.props'))
+ </QtVarsDesignTimeNew>
</PropertyGroup>
- <Delete
- Condition="'$(ErrorLevel)' == '0'"
- Files="$([System.IO.Directory]::GetFiles('$(QtVarsOutputDir)', '*.designtime.props'))"/>
<Copy
- Condition="'$(ErrorLevel)' == '0'"
+ Condition="'$(ErrorLevel)' == '0' AND '$(QtVSToolsBuild)' == 'true'"
SourceFiles="$(QtVarsFilePath)" DestinationFiles="$(QtVarsDesignTimeNew)"/>
<WriteLinesToFile
- Condition="'$(ErrorLevel)' == '0'"
+ Condition="'$(ErrorLevel)' == '0' AND '$(QtVSToolsBuild)' == 'true'"
File="$(QtVarsIndexPathDesignTime)" Overwrite="true" Lines="$(QtVarsDesignTimeNew)"/>
- <!--// Restart build in second MSBuild instance with updated Qt variables -->
- <MSBuild
- Condition="'$(DesignTimeBuild)' != 'true'"
- Projects="$(MSBuildProjectFullPath)"
- Targets="Build"
- Properties="RandomFileName=$([System.IO.Path]::GetRandomFileName())">
- </MSBuild>
-
- <!--// Skip remaining build -->
- <CreateProperty Value="true">
- <Output TaskParameter="ValueSetByTask" PropertyName="QtSkipWork" />
- </CreateProperty>
- <CallTarget
- Condition="'$(QtSkipBuildTargets)' != ''"
- Targets="$(QtSkipBuildTargets)"/>
-
<!--// Clean-up -->
<ItemGroup>
<QtModuleList Remove="@(QtModuleList)"/>
@@ -443,22 +423,4 @@
<CallTarget Targets="QtVars"/>
</Target>
- <!--
- /////////////////////////////////////////////////////////////////////////////////////////////////
- /// TARGET QtSkipBuild
- /////////////////////////////////////////////////////////////////////////////////////////////////
- // Remove source file items in order to skip remaining build process
- // -->
- <Target Name="QtSkipBuild">
- <ItemGroup>
- <QtMoc Remove="@(QtMoc)"/>
- <QtRcc Remove="@(QtRcc)"/>
- <QtRepc Remove="@(QtRepc)"/>
- <QtUic Remove="@(QtUic)"/>
- <ClCompile Remove="@(ClCompile)"/>
- <Link Remove="@(Link)"/>
- <ProjectReference Remove="@(ProjectReference)"/>
- </ItemGroup>
- </Target>
-
</Project>
diff --git a/src/qtprojectlib/MsBuildProject.cs b/src/qtprojectlib/MsBuildProject.cs
index 9155cea3..c2f097fb 100644
--- a/src/qtprojectlib/MsBuildProject.cs
+++ b/src/qtprojectlib/MsBuildProject.cs
@@ -1466,7 +1466,7 @@ namespace QtProjectLib
var projectInstance = new ProjectInstance(this[Files.Project].filePath,
new Dictionary<string, string>(configProps)
- { { "DesignTimeBuild", "true" } },
+ { { "QtVSToolsBuild", "true" } },
null, new ProjectCollection());
var buildRequest = new BuildRequestData(projectInstance,
diff --git a/src/qtvstools/QtMsBuild/Components/QtProjectTracker.cs b/src/qtvstools/QtMsBuild/Components/QtProjectTracker.cs
index 02595baf..f177d410 100644
--- a/src/qtvstools/QtMsBuild/Components/QtProjectTracker.cs
+++ b/src/qtvstools/QtMsBuild/Components/QtProjectTracker.cs
@@ -148,8 +148,8 @@ namespace QtVsTools.QtMsBuild
{
await BuildAsync(
project,
- new[] { KVP("DesignTimeBuild", "true") },
- new[] { "Qt" });
+ new[] { KVP("QtVSToolsBuild", "true") },
+ new[] { "QtVars" });
}
private async Task BuildAsync(