mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-01-14 12:41:24 +08:00
[vcpkg-msbuild] Fix line wrapping bug on Win7.
On Win7, calling powershell via MSBuild results in normal output lines being split based on the ConHost system-wide default line length settings. The fix is to first write all the lines to a file, then load that file as into an MSBuild ItemGroup. This avoids all interaction with ConHost.
This commit is contained in:
parent
1513062f0b
commit
92c0a91d3f
@ -1,5 +1,5 @@
|
||||
[cmdletbinding()]
|
||||
param([string]$targetBinary, [string]$installedDir, [string]$tlogFile)
|
||||
param([string]$targetBinary, [string]$installedDir, [string]$tlogFile, [string]$copiedFilesLog)
|
||||
|
||||
$g_searched = @{}
|
||||
# Note: installedDir is actually the bin\ directory.
|
||||
@ -14,7 +14,7 @@ function deployBinary([string]$targetBinaryDir, [string]$SourceDir, [string]$tar
|
||||
Write-Verbose " ${targetBinaryName}: Copying $SourceDir\$targetBinaryName"
|
||||
Copy-Item "$SourceDir\$targetBinaryName" $targetBinaryDir
|
||||
}
|
||||
"$targetBinaryDir\$targetBinaryName"
|
||||
if ($copiedFilesLog) { Add-Content $copiedFilesLog "$targetBinaryDir\$targetBinaryName" }
|
||||
if ($tlogFile) { Add-Content $tlogFile "$targetBinaryDir\$targetBinaryName" }
|
||||
}
|
||||
|
||||
|
@ -62,18 +62,21 @@
|
||||
<Target Name="AppLocalFromInstalled" AfterTargets="CopyFilesToOutputDirectory" BeforeTargets="CopyLocalFilesOutputGroup;RegisterOutput" Condition="'$(VcpkgEnabled)' == 'true'">
|
||||
<WriteLinesToFile
|
||||
File="$(TLogLocation)$(ProjectName).write.1u.tlog"
|
||||
Lines="^$(OutputPath)$(TargetName).$(OutputType);" Encoding="Unicode"/>
|
||||
Lines="^$(TargetPath);$([System.IO.Path]::Combine($(ProjectDir),$(IntDir)))vcpkg.applocal.log" Encoding="Unicode"/>
|
||||
<Exec Condition="'$(VcpkgConfiguration)' == 'Debug'"
|
||||
Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)debug\bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22"
|
||||
ConsoleToMSBuild="true"
|
||||
Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)debug\bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
|
||||
StandardOutputImportance="Normal">
|
||||
<Output TaskParameter="ConsoleOutput" ItemName="ReferenceCopyLocalPaths" />
|
||||
</Exec>
|
||||
<Exec Condition="'$(VcpkgConfiguration)' == 'Release'"
|
||||
Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22"
|
||||
ConsoleToMSBuild="true"
|
||||
Command="powershell.exe -ExecutionPolicy Bypass -noprofile -File %22$(MSBuildThisFileDirectory)applocal.ps1%22 %22$(TargetPath)%22 %22$(VcpkgRoot)bin%22 %22$(TLogLocation)$(ProjectName).write.1u.tlog%22 %22$(IntDir)vcpkg.applocal.log%22"
|
||||
StandardOutputImportance="Normal">
|
||||
<Output TaskParameter="ConsoleOutput" ItemName="ReferenceCopyLocalPaths" />
|
||||
</Exec>
|
||||
<ReadLinesFromFile File="$(IntDir)vcpkg.applocal.log">
|
||||
<Output TaskParameter="Lines" ItemName="VcpkgAppLocalDLLs" />
|
||||
</ReadLinesFromFile>
|
||||
<Message Text="@(VcpkgAppLocalDLLs,'%0A')" Importance="Normal" />
|
||||
<ItemGroup>
|
||||
<ReferenceCopyLocalPaths Include="@(VcpkgAppLocalDLLs)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Project>
|
||||
|
Loading…
x
Reference in New Issue
Block a user