diff --git a/azure-pipelines-windows-template-qt6-arm64.yml b/azure-pipelines-windows-template-qt6-arm64.yml index fb17ff56..0c2523c3 100644 --- a/azure-pipelines-windows-template-qt6-arm64.yml +++ b/azure-pipelines-windows-template-qt6-arm64.yml @@ -58,8 +58,9 @@ jobs: - ${{ 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_native }}\bin;%PATH% + set QTPATHS_ARM64=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin\qtpaths.exe cd $(Build.SourcesDirectory)\ci\win - .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 $(pfxFile.secureFilePath) %PASSWORD% + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 %QTPATHS_ARM64% $(pfxFile.secureFilePath) %PASSWORD% env: PASSWORD: $(pfxPassword) displayName: 'Create installer' @@ -67,8 +68,9 @@ jobs: - ${{ else }}: - script: | set PATH=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec_native }}\bin;%PATH% + set QTPATHS_ARM64=C:\Qt\${{ parameters.qt_version }}\${{ parameters.qt_spec }}\bin\qtpaths.exe cd $(Build.SourcesDirectory)\ci\win - .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 %QTPATHS_ARM64% displayName: 'Create installer' - task: CopyFiles@2 diff --git a/azure-pipelines-windows-template-qt6.yml b/azure-pipelines-windows-template-qt6.yml index 5f41c7fc..3fb51416 100644 --- a/azure-pipelines-windows-template-qt6.yml +++ b/azure-pipelines-windows-template-qt6.yml @@ -57,7 +57,7 @@ jobs: - 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% + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 no_qtpaths $(pfxFile.secureFilePath) %PASSWORD% env: PASSWORD: $(pfxPassword) displayName: 'Create installer' @@ -65,7 +65,7 @@ jobs: - 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 + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt6 no_qtpaths displayName: 'Create installer' - task: CopyFiles@2 inputs: diff --git a/azure-pipelines-windows-template.yml b/azure-pipelines-windows-template.yml index 41bd5249..224faade 100644 --- a/azure-pipelines-windows-template.yml +++ b/azure-pipelines-windows-template.yml @@ -57,7 +57,7 @@ jobs: - 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) qt5 $(pfxFile.secureFilePath) %PASSWORD% + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt5 no_qtpaths $(pfxFile.secureFilePath) %PASSWORD% env: PASSWORD: $(pfxPassword) displayName: 'Create installer' @@ -65,7 +65,7 @@ jobs: - 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) qt5 + .\create_installer.cmd ${{ parameters.architecture }} 7z $(Build.BuildNumber) qt5 no_qtpaths displayName: 'Create installer' - task: CopyFiles@2 inputs: diff --git a/ci/win/create_installer.cmd b/ci/win/create_installer.cmd index 4d0bbec2..8e792fcc 100644 --- a/ci/win/create_installer.cmd +++ b/ci/win/create_installer.cmd @@ -2,10 +2,18 @@ SET src_path=..\..\.. -IF "%1"=="x64" ( - SET exe_path=%src_path%\release64 +set ARCH=%1 +set COMPRESSION=%2 +set BUILD_NUMBER=%3 +set QT_VERSION=%4 +set QT_PATHS=%5 +set PFX_FILE=%6 +set PASSWORD=%7 + +IF "%ARCH%"=="x64" ( + SET exe_path=%src_path%\release64 ) ELSE ( - SET exe_path=%src_path%\release + SET exe_path=%src_path%\release ) rmdir /S /Q installer_contents @@ -23,53 +31,59 @@ copy %exe_path%\YACReader.exe . copy %exe_path%\YACReaderLibrary.exe . copy %exe_path%\YACReaderLibraryServer.exe . -windeployqt --release -qml YACReader.exe -windeployqt --release -qml --qmldir %src_path%\YACReaderLibrary\qml YACReaderLibrary.exe -windeployqt YACReaderLibraryServer.exe +IF "%QT_PATHS%"=="no_qtpaths" ( + windeployqt --release -qml YACReader.exe + windeployqt --release -qml --qmldir %src_path%\YACReaderLibrary\qml YACReaderLibrary.exe + windeployqt YACReaderLibraryServer.exe +) ELSE ( + windeployqt --release -qml --qtpaths "%QT_PATHS%" YACReader.exe + windeployqt --release -qml --qtpaths "%QT_PATHS%" --qmldir %src_path%\YACReaderLibrary\qml YACReaderLibrary.exe + windeployqt --qtpaths "%QT_PATHS%" YACReaderLibraryServer.exe +) mkdir utils -IF "%2"=="7z" ( - copy %src_path%\dependencies\7zip\win\%1\7z.dll .\utils\7z.dll +IF "%COMPRESSION%"=="7z" ( + copy %src_path%\dependencies\7zip\win\%ARCH%\7z.dll .\utils\7z.dll ) ELSE ( - copy %src_path%\dependencies\unarr\win\%1\unarr.dll . + copy %src_path%\dependencies\unarr\win\%ARCH%\unarr.dll . ) -copy %src_path%\dependencies\pdfium\win\%1\pdfium.dll . +copy %src_path%\dependencies\pdfium\win\%ARCH%\pdfium.dll . mkdir openssl -copy %src_path%\dependencies\openssl\win\%1\* .\openssl\ +copy %src_path%\dependencies\openssl\win\%ARCH%\* .\openssl\ xcopy %src_path%\release\server .\server /i /e xcopy %src_path%\release\languages .\languages /i /e -copy %src_path%\vc_redist.%1.exe . +copy %src_path%\vc_redist.%ARCH%.exe . type %src_path%\common\yacreader_global.h | findstr /R /C:"#define VERSION " > tmp set /p VERSION= < tmp set VERSION=%VERSION:#define VERSION "=% set VERSION=%VERSION:"=% echo %VERSION% -del +del tmp -if "%1"=="x86" ( - type build_installer.iss | findstr /v ArchitecturesInstallIn64BitMode | findstr /v ArchitecturesAllowed > copy_build_installer.iss - type copy_build_installer.iss > build_installer.iss +if "%ARCH%"=="x86" ( + type build_installer.iss | findstr /v ArchitecturesInstallIn64BitMode | findstr /v ArchitecturesAllowed > copy_build_installer.iss + type copy_build_installer.iss > build_installer.iss ) echo "iscc start" -if "%~5" == "" ( - if "%4"=="qt6" ( - iscc /DVERSION=%VERSION% /DPLATFORM=%1 /DCOMPRESSED_ARCHIVE_BACKEND=%2 /DBUILD_NUMBER=%3 /DCODE_SIGN=false build_installer_qt6.iss || exit /b - ) else ( - iscc /DVERSION=%VERSION% /DPLATFORM=%1 /DCOMPRESSED_ARCHIVE_BACKEND=%2 /DBUILD_NUMBER=%3 /DCODE_SIGN=false build_installer.iss || exit /b - ) +if "%PFX_FILE%" == "" ( + if "%QT_VERSION%"=="qt6" ( + iscc /DVERSION=%VERSION% /DPLATFORM=%ARCH% /DCOMPRESSED_ARCHIVE_BACKEND=%COMPRESSION% /DBUILD_NUMBER=%BUILD_NUMBER% /DCODE_SIGN=false build_installer_qt6.iss || exit /b + ) else ( + iscc /DVERSION=%VERSION% /DPLATFORM=%ARCH% /DCOMPRESSED_ARCHIVE_BACKEND=%COMPRESSION% /DBUILD_NUMBER=%BUILD_NUMBER% /DCODE_SIGN=false build_installer.iss || exit /b + ) ) else ( - if "%4"=="qt6" ( - iscc /DVERSION=%VERSION% /DPLATFORM=%1 /DCOMPRESSED_ARCHIVE_BACKEND=%2 /DBUILD_NUMBER=%3 /DCODE_SIGN=true build_installer_qt6.iss "/Ssigntool=$qC:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\SignTool.exe$q sign /f %5 /p %6 $f" || exit /b - ) else ( - iscc /DVERSION=%VERSION% /DPLATFORM=%1 /DCOMPRESSED_ARCHIVE_BACKEND=%2 /DBUILD_NUMBER=%3 /DCODE_SIGN=true build_installer.iss "/Ssigntool=$qC:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\SignTool.exe$q sign /f %5 /p %6 $f" || exit /b - ) + if "%QT_VERSION%"=="qt6" ( + iscc /DVERSION=%VERSION% /DPLATFORM=%ARCH% /DCOMPRESSED_ARCHIVE_BACKEND=%COMPRESSION% /DBUILD_NUMBER=%BUILD_NUMBER% /DCODE_SIGN=true build_installer_qt6.iss "/Ssigntool=$qC:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\SignTool.exe$q sign /f %PFX_FILE% /p %PASSWORD% $f" || exit /b + ) else ( + iscc /DVERSION=%VERSION% /DPLATFORM=%ARCH% /DCOMPRESSED_ARCHIVE_BACKEND=%COMPRESSION% /DBUILD_NUMBER=%BUILD_NUMBER% /DCODE_SIGN=true build_installer.iss "/Ssigntool=$qC:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\SignTool.exe$q sign /f %PFX_FILE% /p %PASSWORD% $f" || exit /b + ) ) echo "iscc done!"