diff options
author | Miguel Costa <miguel.costa@qt.io> | 2022-07-29 16:17:36 +0200 |
---|---|---|
committer | Miguel Costa <miguel.costa@qt.io> | 2022-08-01 09:49:21 +0000 |
commit | 12380e2ef8fc7b3aa9c022718a91b0577a7889be (patch) | |
tree | ced1e51283672e2983dd83b9946ea6f195491daf | |
parent | d1dadd168567e2c01fa18ef66903841d5aa4042b (diff) |
Call qmake from subdir of %TEMP%
Because qmake does not support paths with spaces, the QtVars target will
now use a subdir of %TEMP% as working directory when qmake is called.
Change-Id: Idadecdbdfb0350551798347172549cf56da75a16
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r-- | QtMSBuild/QtMsBuild/qt_vars.targets | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/QtMSBuild/QtMsBuild/qt_vars.targets b/QtMSBuild/QtMsBuild/qt_vars.targets index 73c55fab..7a204759 100644 --- a/QtMSBuild/QtMsBuild/qt_vars.targets +++ b/QtMSBuild/QtMsBuild/qt_vars.targets @@ -338,6 +338,7 @@ DummyQmlObject { } <Cmd><![CDATA["$(QtToolsPath)/qmake" $(QMakeArgs) qtvars.pro]]></Cmd> </PropertyGroup> <HostExec + Condition="'$(ApplicationType)' == 'Linux'" Command="$(Cmd)" RedirectStdOut="qtvars.log" RedirectStdErr="STDOUT" WorkingDirectory="@(WorkDir->'%(HostPath)')" Inputs="@(QMakeProj)" @@ -348,6 +349,45 @@ DummyQmlObject { } <Output TaskParameter="ExitCode" PropertyName="ErrorLevel"/> </HostExec> + <!--// Run qmake in Windows: set %CD% to subfolder of %TEMP% --> + <PropertyGroup + Condition="'$(ApplicationType)' != 'Linux'"> + <QMakeTempDir>$(Temp)\$([System.IO.Path]::GetRandomFileName())</QMakeTempDir> + </PropertyGroup> + <MakeDir + Condition="'$(ApplicationType)' != 'Linux'" + Directories="$(QMakeTempDir)" /> + <Copy + Condition="'$(ApplicationType)' != 'Linux'" + SourceFiles="$(QtVarsWorkDir)\qtvars.pro" + DestinationFolder="$(QMakeTempDir)" /> + <Copy + Condition="'$(ApplicationType)' != 'Linux' AND Exists('$(QtVarsWorkDir)\main.qml')" + SourceFiles="$(QtVarsWorkDir)\main.qml" + DestinationFolder="$(QMakeTempDir)" /> + <Copy + Condition="'$(ApplicationType)' != 'Linux' AND Exists('$(QtVarsWorkDir)\qml.qrc')" + SourceFiles="$(QtVarsWorkDir)\qml.qrc" + DestinationFolder="$(QMakeTempDir)" /> + <HostExec + Condition="'$(ApplicationType)' != 'Linux'" + Command="$(Cmd)" RedirectStdOut="qtvars.log" RedirectStdErr="STDOUT" + WorkingDirectory="$(QMakeTempDir)" + IgnoreExitCode="true"> + <Output TaskParameter="ExitCode" PropertyName="ErrorLevel"/> + </HostExec> + <ItemGroup> + <QMakeGeneratedFiles Include="$(QMakeTempDir)\*" /> + </ItemGroup> + <Copy + Condition="'$(ApplicationType)' != 'Linux'" + SkipUnchangedFiles="true" + SourceFiles="@(QMakeGeneratedFiles)" + DestinationFolder="$(QtVarsWorkDir)" /> + <RemoveDir + Condition="'$(ApplicationType)' != 'Linux'" + Directories="$(QMakeTempDir)" /> + <!--// Check qmake result --> <PropertyGroup Condition="'$(ErrorLevel)' != '0' |