@@ -45,23 +45,31 @@ jobs:
4545 METHOD : ' aqt'
4646 GENERATOR : ' Visual Studio 17 2022'
4747 RELEASE : false
48- os : windows-latest
48+ os : windows-2022
4949 - QT_VERSION : ' 6.5.3'
5050 ARCH : ' amd64'
5151 HOST_ARCH : ' amd64'
5252 COMPILER : ' msvc2019_64'
5353 METHOD : ' aqt'
54- RELEASE : true
54+ RELEASE : false
5555 GENERATOR : ' Ninja'
56- os : windows-latest
56+ os : windows-2022
5757 - QT_VERSION : ' 6.8.3'
5858 ARCH : ' amd64'
5959 HOST_ARCH : ' amd64'
6060 COMPILER : ' msvc2022_64'
6161 METHOD : ' aqt'
62- RELEASE : false
62+ RELEASE : true
6363 GENERATOR : ' Ninja'
6464 os : windows-2025
65+ - QT_VERSION : ' 6.8.3'
66+ TARGET_ARCH : ' arm64'
67+ HOST_ARCH : ' amd64'
68+ COMPILER : ' msvc2022_64'
69+ CROSS_COMPILER : ' msvc2022_arm64'
70+ METHOD : ' aqt'
71+ RELEASE : true
72+ os : windows-2025
6573
6674 steps :
6775 - name : Checkout repository
7280 id : cache
7381 with :
7482 path : ~/Cache
75- key : ${{ runner.os }}-${{ matrix.QT_VERSION }}-${{ matrix.COMPILER }}-${{ secrets.CACHE_VERSION }}
83+ key : ${{ runner.os }}-${{ matrix.QT_VERSION }}-${{ matrix.COMPILER }}-${{ matrix.CROSS_COMPILER }}-${{ secrets.CACHE_VERSION }}
7684
7785 - name : Install Qt setup(aqt)
7886 if : steps.cache.outputs.cache-hit != 'true'
8694 CI_BUILD_DIR : ${{ github.workspace }}
8795 shell : bash
8896 run : |
89- ./tools/ci_install_windows.sh "${{ matrix.QT_VERSION }}" "${{ matrix.COMPILER }}" "${{ matrix.METHOD }}"
97+ if [ -n "${{ matrix.CROSS_COMPILER }}" ]; then
98+ ./tools/ci_install_windows.sh "${{ matrix.QT_VERSION }}" "${{ matrix.COMPILER }}" "${{ matrix.METHOD }}" "${{ matrix.CROSS_COMPILER }}"
99+ else
100+ ./tools/ci_install_windows.sh "${{ matrix.QT_VERSION }}" "${{ matrix.COMPILER }}" "${{ matrix.METHOD }}"
101+ fi
90102
91103 - name : Install Inno Setup
92104 if : matrix.os == 'windows-2025'
@@ -95,18 +107,31 @@ jobs:
95107 - name : Build
96108 shell : powershell
97109 run : |
98- .\tools\ci_setup_windows.ps1 -qtdir "$Home\Cache\Qt\${{ matrix.QT_VERSION }}\${{ matrix.COMPILER }}" -arch "${{ matrix.ARCH }}" -host_arch "${{ matrix.HOST_ARCH }}" -vcversion "${{ matrix.VCVERSION }}"
99- .\tools\ci_script_windows.ps1 -generator "${{ matrix.GENERATOR }}" -arch "${{ matrix.ARCH }}" -toolset "${{ matrix.TOOLSET }}"
110+ if ([string]::IsNullOrEmpty("${{ matrix.CROSS_COMPILER }}")) {
111+ .\tools\ci_setup_windows.ps1 -qtdir "$Home\Cache\Qt\${{ matrix.QT_VERSION }}\${{ matrix.COMPILER }}" -arch "${{ matrix.ARCH }}" -host_arch "${{ matrix.HOST_ARCH }}" -vcversion "${{ matrix.VCVERSION }}"
112+ .\tools\ci_script_windows.ps1 -generator "${{ matrix.GENERATOR }}" -arch "${{ matrix.ARCH }}" -toolset "${{ matrix.TOOLSET }}"
113+ } else {
114+ $hash = @{}
115+ $hash["qt_root_dir"] = "$Home\Cache\Qt\${{ matrix.QT_VERSION }}"
116+ $hash["host_arch"] = "${{ matrix.HOST_ARCH }}"
117+ $hash["target_arch"] = "${{ matrix.TARGET_ARCH }}"
118+ $hash["compiler"] = "${{ matrix.COMPILER }}"
119+ $hash["cross_compiler"] = "${{ matrix.CROSS_COMPILER }}"
120+ .\tools\ci_windows_cross_compile @hash
121+ }
100122
101123 - name : Rename
102124 shell : bash
103125 run : |
104126 VERSION_ID=$(date -u +%Y%m%dT%H%MZ --date=$(git show -s --format=%aI HEAD))-$(git rev-parse --short=7 HEAD)
105- mv bld/gui/GPSBabel-*-Setup.exe bld/gui/GPSBabel-${VERSION_ID}-Setup.exe
106- mv bld/gui/GPSBabel-*-Manifest.txt bld/gui/GPSBabel-${VERSION_ID}-Manifest.txt
127+ SETUP=$(ls bld/gui/GPSBabel-*-Setup-*.exe | sed "s/\([^-]*\)-\([^-]*\)-\(.*\)/\1-${VERSION_ID}-\3/")
128+ mv bld/gui/GPSBabel-*-Setup-*.exe ${SETUP}
129+ MANIFEST=$(ls bld/gui/GPSBabel-*-Manifest-*.txt | sed "s/\([^-]*\)-\([^-]*\)-\(.*\)/\1-${VERSION_ID}-\3/")
130+ mv bld/gui/GPSBabel-*-Manifest-*.txt ${MANIFEST}
107131
108132 - name : Test
109133 shell : bash
134+ if : matrix.CROSS_COMPILER == ''
110135 run : |
111136 # PATH="${HOME}/Cache/Qt/${{ matrix.QT_VERSION }}/${{ matrix.COMPILER }}/bin:${PATH}"
112137 PNAME=./bld/gui/package/gpsbabel.exe GBTEMP=./gbtemp ./testo 2>&1
@@ -116,7 +141,7 @@ jobs:
116141 if : ${{ inputs.attestation && matrix.RELEASE }}
117142 uses : actions/attest-build-provenance@v2
118143 with :
119- subject-path : ' bld/gui/GPSBabel-*-Setup.exe'
144+ subject-path : ' bld/gui/GPSBabel-*-Setup-* .exe'
120145
121146 - name : Deploy
122147 # This only handles continous releases now, for other events artifacts may be saved in
@@ -127,13 +152,13 @@ jobs:
127152 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
128153 RELEASE_NAME : Continuous-${{ runner.os }}
129154 run : |
130- ./tools/uploadtool/upload_github.sh bld/gui/GPSBabel-*-Setup.exe
155+ ./tools/uploadtool/upload_github.sh bld/gui/GPSBabel-*-Setup-* .exe
131156
132157 - name : ' Upload Artifacts'
133158 uses : actions/upload-artifact@v4
134159 with :
135160 name : Windows_Installer ${{ join(matrix.*) }}
136161 path : |
137- bld/gui/GPSBabel-*-Setup.exe
138- bld/gui/GPSBabel-*-Manifest.txt
162+ bld/gui/GPSBabel-*-Setup-* .exe
163+ bld/gui/GPSBabel-*-Manifest-* .txt
139164 retention-days : 7
0 commit comments