Build PublicTerminalCore for ARM64, and package it with WPF (#12787)

I also took the opportunity to clean up the WPF stage's artifact rules.

Closes #12786
This commit is contained in:
Dustin L. Howett 2022-03-29 14:07:57 -05:00 committed by GitHub
parent 0bc66abd3b
commit 0651d92dba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 19 deletions

View File

@ -2117,6 +2117,7 @@ Global
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|Any CPU.ActiveCfg = Debug|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|Any CPU.ActiveCfg = Debug|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|ARM.ActiveCfg = Debug|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|ARM.ActiveCfg = Debug|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|ARM64.ActiveCfg = Debug|ARM64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|ARM64.ActiveCfg = Debug|ARM64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|ARM64.Build.0 = Debug|ARM64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|DotNet_x64Test.ActiveCfg = Debug|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|DotNet_x64Test.ActiveCfg = Debug|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|DotNet_x64Test.Build.0 = Debug|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|DotNet_x64Test.Build.0 = Debug|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|DotNet_x86Test.ActiveCfg = Debug|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Debug|DotNet_x86Test.ActiveCfg = Debug|Win32
@ -2135,6 +2136,7 @@ Global
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|Any CPU.ActiveCfg = Release|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|Any CPU.ActiveCfg = Release|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|ARM.ActiveCfg = Release|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|ARM.ActiveCfg = Release|Win32
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|ARM64.ActiveCfg = Release|ARM64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|ARM64.ActiveCfg = Release|ARM64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|ARM64.Build.0 = Release|ARM64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|DotNet_x64Test.ActiveCfg = Release|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|DotNet_x64Test.ActiveCfg = Release|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|DotNet_x64Test.Build.0 = Release|x64 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|DotNet_x64Test.Build.0 = Release|x64
{84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|DotNet_x86Test.ActiveCfg = Release|Win32 {84848BFA-931D-42CE-9ADF-01EE54DE7890}.Release|DotNet_x86Test.ActiveCfg = Release|Win32

View File

@ -216,7 +216,6 @@ jobs:
- ${{ if eq(parameters.buildWPF, true) }}: - ${{ if eq(parameters.buildWPF, true) }}:
- task: VSBuild@1 - task: VSBuild@1
displayName: Build solution **\OpenConsole.sln for PublicTerminalCore displayName: Build solution **\OpenConsole.sln for PublicTerminalCore
condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64'))
inputs: inputs:
solution: '**\OpenConsole.sln' solution: '**\OpenConsole.sln'
vsVersion: 16.0 vsVersion: 16.0
@ -270,7 +269,6 @@ jobs:
- ${{ if eq(parameters.buildWPF, true) }}: - ${{ if eq(parameters.buildWPF, true) }}:
- task: CopyFiles@2 - task: CopyFiles@2
displayName: Copy PublicTerminalCore.dll to Artifacts displayName: Copy PublicTerminalCore.dll to Artifacts
condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64'))
inputs: inputs:
Contents: >- Contents: >-
**/PublicTerminalCore.dll **/PublicTerminalCore.dll
@ -281,7 +279,6 @@ jobs:
flattenFolders: true flattenFolders: true
- task: PublishBuildArtifacts@1 - task: PublishBuildArtifacts@1
displayName: Publish Artifact (PublicTerminalCore) displayName: Publish Artifact (PublicTerminalCore)
condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64'))
inputs: inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)/wpf PathtoPublish: $(Build.ArtifactStagingDirectory)/wpf
ArtifactName: wpf-dll-$(BuildPlatform)-$(BuildConfiguration)-$(TerminalTargetWindowsVersion) ArtifactName: wpf-dll-$(BuildPlatform)-$(BuildConfiguration)-$(TerminalTargetWindowsVersion)
@ -389,31 +386,26 @@ jobs:
displayName: Package ES - Setup Build displayName: Package ES - Setup Build
inputs: inputs:
disableOutputRedirect: true disableOutputRedirect: true
- task: DownloadBuildArtifacts@0 - ${{ each platform in parameters.buildPlatforms }}:
displayName: Download x86 PublicTerminalCore - task: DownloadBuildArtifacts@0
inputs: displayName: Download ${{ platform }} PublicTerminalCore
artifactName: wpf-dll-x86-$(BuildConfiguration)-Win10 inputs:
itemPattern: '**/*.dll' artifactName: wpf-dll-${{ platform }}-$(BuildConfiguration)-Win10
downloadPath: bin\Win32\$(BuildConfiguration)\ itemPattern: '**/*.dll'
extractTars: false downloadPath: bin\${{ platform }}\$(BuildConfiguration)\
- task: DownloadBuildArtifacts@0 extractTars: false
displayName: Download x64 PublicTerminalCore
inputs:
artifactName: wpf-dll-x64-$(BuildConfiguration)-Win10
itemPattern: '**/*.dll'
downloadPath: bin\x64\$(BuildConfiguration)\
extractTars: false
- task: PowerShell@2 - task: PowerShell@2
displayName: Move downloaded artifacts up a level displayName: Move downloaded artifacts around
inputs: inputs:
targetType: inline targetType: inline
# Find all artifact files and move them up a directory. Ugh. # Find all artifact files and move them up a directory. Ugh.
script: >- script: |-
Get-ChildItem bin -Recurse -Directory -Filter wpf-dll-* | % { Get-ChildItem bin -Recurse -Directory -Filter wpf-dll-* | % {
$_ | Get-ChildItem -Recurse -File | % { $_ | Get-ChildItem -Recurse -File | % {
Move-Item -Verbose $_.FullName $_.Directory.Parent.FullName Move-Item -Verbose $_.FullName $_.Directory.Parent.FullName
} }
} }
Move-Item bin\x86 bin\Win32
- task: NuGetToolInstaller@1 - task: NuGetToolInstaller@1
displayName: Use NuGet 5.10.0 displayName: Use NuGet 5.10.0
inputs: inputs:

View File

@ -50,6 +50,14 @@
<Pack>true</Pack> <Pack>true</Pack>
<PackagePath>runtimes\win-x64\native\</PackagePath> <PackagePath>runtimes\win-x64\native\</PackagePath>
</None> </None>
<None Include="$(RepoBinPath)\ARM64\$(Configuration)\PublicTerminalCore.dll">
<Pack>true</Pack>
<PackagePath>runtimes\win-arm64\native\</PackagePath>
</None>
<None Include="$(RepoBinPath)\ARM64\$(Configuration)\api-ms-win-core-synch-l1-2-0.dll">
<Pack>true</Pack>
<PackagePath>runtimes\win-arm64\native\</PackagePath>
</None>
</ItemGroup> </ItemGroup>
</Target> </Target>