From 817cbd94834e053b651d897903f2aa9733951443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Mon, 31 Mar 2025 20:42:37 +0200 Subject: [PATCH] Let's see how far a new arm64 build for windows gets --- ...e-pipelines-windows-template-qt6-arm64.yml | 80 +++++++++++++++++++ azure-pipelines.yml | 15 ++++ 2 files changed, 95 insertions(+) create mode 100644 azure-pipelines-windows-template-qt6-arm64.yml diff --git a/azure-pipelines-windows-template-qt6-arm64.yml b/azure-pipelines-windows-template-qt6-arm64.yml new file mode 100644 index 00000000..b260608b --- /dev/null +++ b/azure-pipelines-windows-template-qt6-arm64.yml @@ -0,0 +1,80 @@ +parameters: + name: Windows_ARM64 + architecture: 'arm64' + qt_version: '6.8.1' + qt_spec: 'msvc2022_arm64' + qt_aqt_spec: 'win64_msvc2022_arm64' + vc_redist_url: 'https://aka.ms/vs/17/release/vc_redist.arm64.exe' + vc_redist_file_name: 'vc_redist.arm64.exe' + vc_vars: 'vcvarsall.bat' + +jobs: +- job: ${{ parameters.name }} + timeoutInMinutes: 90 + dependsOn: CodeFormatValidation + variables: + - ${{ if and(eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/luisangelsm/'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))) }}: + - group: windows-codesign + pool: + vmImage: 'windows-2022' + steps: + - script: | + pip install aqtinstall + mkdir C:\Qt + python -m aqt install-qt windows desktop ${{ parameters.qt_version }} ${{ parameters.qt_aqt_spec }} -O c:\Qt -m qt5compat qtmultimedia qtimageformats qtshadertools + dir C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin + choco install -y wget + choco install innosetup + mkdir $(Build.SourcesDirectory)\compressed_archive + wget "https://github.com/YACReader/yacreader-7z-deps/blob/main/7z2301-src.7z?raw=true" -O $(Build.SourcesDirectory)\compressed_archive\7z2301-src.7z + 7z x $(Build.SourcesDirectory)\compressed_archive\7z2301-src.7z -o$(Build.SourcesDirectory)\compressed_archive\lib7zip + wget "${{ parameters.vc_redist_url }}" -O $(Build.SourcesDirectory)\${{ parameters.vc_redist_file_name }} + displayName: 'Install dependencies' + + - script: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\${{ parameters.vc_vars }}" amd64_arm64 + set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin;%PATH% + set DEFINES_VAR=DEFINES+="BUILD_NUMBER=\\\\\\\"$(Build.BuildNumber)\\\\\\\"" + qmake CONFIG+="7zip" %DEFINES_VAR% + nmake + displayName: 'Build (Cross-Compiling ARM64)' + + - script: | + call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\${{ parameters.vc_vars }}" amd64_arm64 + set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin;%PATH% + nmake check TESTARGS="-maxwarnings 100000" + displayName: 'Run tests' + + - ${{ if and(eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/luisangelsm/'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))) }}: + - task: DownloadSecureFile@1 + name: pfxFile + displayName: 'Get the pfx file certificate' + inputs: + secureFile: 'certificate.pfx' + + - ${{ if and(eq(variables['System.TeamFoundationCollectionUri'], 'https://dev.azure.com/luisangelsm/'), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))) }}: + - script: | + set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin;%PATH% + cd $(Build.SourcesDirectory)\ci\win + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 $(pfxFile.secureFilePath) %PASSWORD% + env: + PASSWORD: $(pfxPassword) + displayName: 'Create installer' + + - ${{ else }}: + - script: | + set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin;%PATH% + cd $(Build.SourcesDirectory)\ci\win + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 + displayName: 'Create installer' + + - task: CopyFiles@2 + inputs: + sourceFolder: $(Build.SourcesDirectory)\ci\win\Output\ + contents: '*' + targetFolder: $(Build.ArtifactStagingDirectory) + + - task: PublishPipelineArtifact@1 + inputs: + path: $(Build.ArtifactStagingDirectory) + artifactName: Windows ${{ parameters.architecture }} $(Build.BuildNumber) 7z Qt6 Installer diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3309b34b..ed0c8b0b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -287,6 +287,21 @@ jobs: vc_redist_file_name: 'vc_redist.x64.exe' vc_vars: 'vcvars64.bat' +# +# Windows arm64 qt6 +# + +- template: azure-pipelines-windows-template-qt6-arm64.yml + parameters: + name: Windows_arm64_qt6 + architecture: 'arm64' + qt_version: '6.8.1' + qt_spec: 'msvc2022_arm64' + qt_aqt_spec: 'win64_msvc2022_arm64' + vc_redist_url: 'https://aka.ms/vs/17/release/vc_redist.arm64.exe' + vc_redist_file_name: 'vc_redist.arm64.exe' + vc_vars: 'vcvarsall.bat' + # # Windows x86 #