@@ -87,7 +87,7 @@ stages:
8787 imageName : ' windows-2025'
8888 architecture : ' x64'
8989 compiler : ' MSVC'
90- qt_version : ' 6.8.3 '
90+ qt_version : ' 6.10.2 '
9191 qt_version_major : ' 6'
9292 qt_modules : ' qtserialport qtmultimedia'
9393 cmake_preset : ' RelWithDebInfo'
@@ -124,11 +124,17 @@ stages:
124124 Write-Host "=== Running windeployqt ==="
125125 $BUILD_DIR = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
126126 $APP_EXE = "$BUILD_DIR/SerialPrograms.exe"
127- $BUILD_CACHE = "$BUILD_DIR/cache-build"
127+ $BUILD_CACHE = "$BUILD_DIR/cache-build/Binaries64 "
128128 $SYMBOLS_CACHE = "$BUILD_DIR/cache-symbols"
129129 New-Item -ItemType Directory -Force -Path $BUILD_CACHE | Out-Null
130130 & "C:/Qt/$(qt_version)/msvc2022_64/bin/windeployqt.exe" --dir "$BUILD_CACHE" --release "$APP_EXE"
131131 New-Item -ItemType Directory -Force -Path $SYMBOLS_CACHE | Out-Null
132+
133+ Write-Host "=== Excluding unnecessary files from deployment ==="
134+ Remove-Item -Path "$BUILD_CACHE/opencv_world4120d.dll" -ErrorAction SilentlyContinue
135+ Remove-Item -Path "$BUILD_CACHE/translations" -Recurse -Force -ErrorAction SilentlyContinue
136+ Remove-Item -Path "$BUILD_CACHE/generic" -Recurse -Force -ErrorAction SilentlyContinue
137+
132138 Write-Host "=== windeployqt complete ==="
133139 displayName: 'Deploy app'
134140 condition: succeeded()
@@ -137,28 +143,65 @@ stages:
137143 echo "=== Copying resources==="
138144 robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/Packages/Resources $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Resources /s
139145 robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/Packages/Firmware $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Firmware /s
140- robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/ *.dll
141- robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/ SerialPrograms.exe
146+ robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Binaries64 *.dll
147+ robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/Binaries64 SerialPrograms.exe
142148 robocopy $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset) $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-symbols/ SerialPrograms.pdb
143149 Write-Host "Robocopy exited with exit code:" $LASTEXITCODE
144150 if ($LASTEXITCODE -eq 1) { exit 0 } else { exit 1 }
145151 displayName: 'Copy resources'
146152 condition: succeeded()
147153
154+ - powershell : |
155+ $BUILD_DIR = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
156+ $BUILD_CACHE = "$BUILD_DIR/cache-build"
157+
158+ $cmdContent = @'
159+ cd %~dp0
160+
161+ if not exist Binaries64\ (
162+ echo.
163+ echo Please unzip the folder before you can use it.
164+ echo.
165+ pause
166+ exit
167+ )
168+
169+ if not exist Binaries64\SerialPrograms.exe (
170+ echo.
171+ echo Binaries\SerialPrograms.exe not found. Did your anti-virus delete it?
172+ echo.
173+ pause
174+ exit
175+ )
176+
177+ start "" Binaries64\SerialPrograms.exe
178+
179+ '@
180+
181+ Set-Content -Path "$BUILD_CACHE/SerialPrograms-Windows.cmd" -Value $cmdContent -Encoding UTF8
182+ Write-Host "=== Created SerialPrograms-Windows.cmd launcher ==="
183+ displayName: 'Create launcher script'
184+ condition: succeeded()
185+
148186 - powershell : |
149187 $root = "$(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)"
188+ $version = "${{ parameters.versionMajor }}.${{ parameters.versionMinor }}.${{ parameters.versionPatch }}"
189+ $folderName = "SerialPrograms-$version-Windows-x64"
150190 $name = "SerialPrograms-Windows-$(compiler)-$(architecture)"
151191
152192 $cacheArtifactsDir = Join-Path $root "cache-artifacts"
153193 $artifactSubdir = Join-Path $cacheArtifactsDir $name
154194 New-Item -ItemType Directory -Force -Path $artifactSubdir | Out-Null
155195
156196 $temp = Join-Path $root "temp-archive"
157- New-Item -ItemType Directory -Force -Path $temp | Out-Null
158- Copy-Item "$root/cache-build/*" $temp -Recurse -Force
197+ $tempFolder = Join-Path $temp $folderName
198+ New-Item -ItemType Directory -Force -Path $tempFolder | Out-Null
199+ Copy-Item "$root/cache-build/*" $tempFolder -Recurse -Force
159200
160- Compress-Archive -Path $temp/* -DestinationPath "$artifactSubdir/$name.zip"
201+ Compress-Archive -Path $tempFolder -DestinationPath "$artifactSubdir/$name.zip"
161202 Remove-Item $temp -Recurse -Force
203+
204+ Write-Host "=== Created archive with enclosing folder: $folderName ==="
162205 displayName: 'Archive Windows build artifact'
163206 condition: succeeded()
164207
@@ -206,7 +249,7 @@ stages:
206249 imageName : ' ubuntu-24.04'
207250 architecture : ' x64'
208251 compiler : ' GCC'
209- qt_version : ' 6.10.0 '
252+ qt_version : ' 6.10.2 '
210253 qt_version_major : ' 6'
211254 qt_modules : ' qtserialport qtmultimedia'
212255 cmake_preset : ' RelWithDebInfo'
@@ -307,14 +350,23 @@ stages:
307350 -p qt \
308351 -v 3
309352
353+ echo "=== Removing unnecessary Qt files ==="
354+ rm -rf "$APPDIR/usr/translations"
355+
356+ echo "=== Packaging AppImage ==="
310357 ./appimagetool-x86_64.AppImage AppDir
311358 rm linuxdeploy-*.AppImage
312359 rm appimagetool-x86_64.AppImage
313360
314361 echo "=== Archive Linux AppImage ==="
362+ VERSION="${{ parameters.versionMajor }}.${{ parameters.versionMinor }}.${{ parameters.versionPatch }}"
363+ FOLDER_NAME="SerialPrograms-$VERSION-Ubuntu-x64"
364+ mkdir -p "$FOLDER_NAME"
315365 chmod +x "SerialPrograms-x86_64.AppImage"
316- tar -zcvf $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).tar.gz SerialPrograms-x86_64.AppImage
317- echo "=== AppImage build complete ==="
366+ mv "SerialPrograms-x86_64.AppImage" "$FOLDER_NAME/"
367+ tar -zcvf $(Pipeline.Workspace)/Arduino-Source-Internal/Repository/Public/build/$(cmake_preset)/cache-build/SerialPrograms-Ubuntu-$(compiler)-$(architecture).tar.gz "$FOLDER_NAME"
368+
369+ echo "=== AppImage build complete with enclosing folder: $FOLDER_NAME ==="
318370 displayName: 'Deploy AppImage'
319371 condition: succeeded()
320372
@@ -352,13 +404,16 @@ stages:
352404 imageName : macos-26
353405 architecture : arm64
354406 compiler : Clang
355- qt_version : ' 6.9.3 '
407+ qt_version : ' 6.10.2 '
356408 qt_version_major : ' 6'
357409 qt_modules : ' qtserialport qtmultimedia'
358410 cmake_preset : RelWithDebInfo
359- macos_path : ' /opt/Qt/6.9.3 /macos/lib/cmake:/opt/Qt/6.9.3 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
411+ macos_path : ' /opt/Qt/6.10.2 /macos/lib/cmake:/opt/Qt/6.10.2 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
360412 cmake_version_params : ' -DVERSION_MAJOR=${{ parameters.versionMajor }} -DVERSION_MINOR=${{ parameters.versionMinor }} -DVERSION_PATCH=${{ parameters.versionPatch }} -DIS_BETA=${{ lower(eq(parameters.buildType, '' PrivateBeta'' )) }}'
361413 cmake_additional_param : ' -DPACKAGE_BUILD=true -DUNIX_LINK_TESSERACT:BOOL=true -DIS_AZURE_BUILD=TRUE'
414+ versionMajor : ${{ parameters.versionMajor }}
415+ versionMinor : ${{ parameters.versionMinor }}
416+ versionPatch : ${{ parameters.versionPatch }}
362417 condition : or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All'))
363418
364419- template : templates/macos-build.yml
@@ -370,13 +425,16 @@ stages:
370425 imageName : macos-15
371426 architecture : x64
372427 compiler : Clang
373- qt_version : ' 6.9.3 '
428+ qt_version : ' 6.10.2 '
374429 qt_version_major : ' 6'
375430 qt_modules : ' qtserialport qtmultimedia'
376431 cmake_preset : RelWithDebInfo
377- macos_path : ' /usr/local/Qt/6.9.3 /macos/lib/cmake:/usr/local/Qt/6.9.3 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
432+ macos_path : ' /usr/local/Qt/6.10.2 /macos/lib/cmake:/usr/local/Qt/6.10.2 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
378433 cmake_version_params : ' -DVERSION_MAJOR=${{ parameters.versionMajor }} -DVERSION_MINOR=${{ parameters.versionMinor }} -DVERSION_PATCH=${{ parameters.versionPatch }} -DIS_BETA=${{ lower(eq(parameters.buildType, '' PrivateBeta'' )) }}'
379434 cmake_additional_param : ' -DPACKAGE_BUILD=true -DUNIX_LINK_TESSERACT:BOOL=true -DIS_AZURE_BUILD=TRUE'
435+ versionMajor : ${{ parameters.versionMajor }}
436+ versionMinor : ${{ parameters.versionMinor }}
437+ versionPatch : ${{ parameters.versionPatch }}
380438 condition : or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All'))
381439
382440# ##########################################
@@ -394,8 +452,11 @@ stages:
394452 architecture : arm64
395453 compiler : Clang
396454 cmake_preset : RelWithDebInfo
397- macos_path : ' /opt/Qt/6.9.3 /macos/lib/cmake:/opt/Qt/6.9.3 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
455+ macos_path : ' /opt/Qt/6.10.2 /macos/lib/cmake:/opt/Qt/6.10.2 /macos/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/homebrew:$PATH'
398456 openssl_pkcs_args : ' -legacy'
457+ versionMajor : ${{ parameters.versionMajor }}
458+ versionMinor : ${{ parameters.versionMinor }}
459+ versionPatch : ${{ parameters.versionPatch }}
399460 condition : and(succeeded('MacOS_Build_ARM64'), or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All')))
400461
401462- template : templates/macos-notarize.yml
@@ -409,8 +470,11 @@ stages:
409470 architecture : x64
410471 compiler : Clang
411472 cmake_preset : RelWithDebInfo
412- macos_path : ' /usr/local/Qt/6.9.3 /macos/lib/cmake:/usr/local/Qt/6.9.3 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
473+ macos_path : ' /usr/local/Qt/6.10.2 /macos/lib/cmake:/usr/local/Qt/6.10.2 /macos/bin:/usr/local/bin:/usr/local/sbin:/usr/local:$PATH'
413474 openssl_pkcs_args : ' -legacy'
475+ versionMajor : ${{ parameters.versionMajor }}
476+ versionMinor : ${{ parameters.versionMinor }}
477+ versionPatch : ${{ parameters.versionPatch }}
414478 condition : and(succeeded('MacOS_Build_x64'), or(eq('${{ parameters.targetOS }}', 'MacOS'), eq('${{ parameters.targetOS }}', 'All')))
415479
416480# #########################################
0 commit comments