Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
2.4.2 (rev.01)
-
None
-
-
73329ffd0905793bd12b7d2c4823dd9cca628a97
Description
Given the following scenario:
Project C depends on Project B
Project B depends on Project A
All projects are QtMsBuild projects.
Building this in Visual Studio 2019 works fine. However, when building this with the command line, with MSBuild.exe, it results in the following build order:
- Project A
- Project A
- Project B
- Project A
- Project B
- Project C
It seems that for each individual project that has to be built, its dependencies are also built. This result in dependencies being built multiple times. When projects have post-build steps, this can result in very long build times.
This also creates problems when using the multi thread switch of MSBuild; some projects seem to get built by multiple threads at the same time, creating a lot of file access issues.
I have attached a solution that exhibits this issue. When building with the command line
msbuild QtTestApp.sln
, we see the following in the output:
Line 41: QtProjectA.vcxproj -> C:\Code\QtTestAppIssue\Win32\Debug\QtProjectA.dll Line 66: QtProjectA.vcxproj -> C:\Code\QtTestAppIssue\Win32\Debug\QtProjectA.dll Line 86: QtProjectB.vcxproj -> C:\Code\QtTestAppIssue\Win32\Debug\QtProjectB.dll Line 120: QtProjectA.vcxproj -> C:\Code\QtTestAppIssue\Win32\Debug\QtProjectA.dll Line 139: QtProjectB.vcxproj -> C:\Code\QtTestAppIssue\Win32\Debug\QtProjectB.dll Line 180: QtTestApp.vcxproj -> C:\Code\QtTestAppIssue\Win32\Debug\QtTestApp.exe