Added vs2022 build, check if sccache works with MSVC

This commit is contained in:
Julien Wadel 2024-09-19 11:32:44 +02:00
parent 1aa5ef227e
commit 7d9841d833
2 changed files with 103 additions and 53 deletions

View file

@ -2,10 +2,9 @@
# BUILD
#################################################
.windows-vs2019:
.windows-vs:
extends: .prepare
stage: build
tags: [ "windows-powershell" ]
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $DOCKER_UPDATE == null && $SKIP_WINDOWS == null
- if: $CI_PIPELINE_SOURCE == "schedule" && $DOCKER_UPDATE == null && $SKIP_WINDOWS == null
@ -14,27 +13,16 @@
LINPHONESDK_PLATFORM: Desktop
OUTPUT_ZIP_FOLDER: win64
MINGW_TYPE: mingw64
CMAKE_GENERATOR: "Visual Studio 16 2019"
CMAKE_ARCHITECTURE : -A x64
script:
- Set-Variable -Name "PATH_TEMP" -Value ($(Get-ChildItem -Path Env:\PATH).value)
- echo $env:Path
#Remove MinGW of MSYS from PATH and add MINGW_TYPE for MSYS2
# We double the "\" to escape paths as -replace uses regular expressions
- $PATH_TEMP = $PATH_TEMP -replace "C:\\MinGW\\bin;" -replace "C:\\Strawberry\\c\\bin;" -replace "C:\\Program Files\\NASM"
- echo $PATH_TEMP
- $env:Path = ($PATH_TEMP + ";C:\msys64\" + $MINGW_TYPE + "\bin;" + $env:SIGNTOOL_ROOT + "\x64;C:\msys64;C:\msys64\usr\bin;")
- If ($MINGW_TYPE -eq "mingw64") {Import-BatchEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"} Else {Import-BatchEnvironment "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"}
- If ($MINGW_TYPE -eq "mingw64") {$env:Path = ($env:Path + ";C:\Qt\" + $env:QT_WIN_VER + "\msvc2019_64\bin")} Else {$env:Path = ($env:Path + ";C:\Qt\" + $env:QT_WIN_VER + "\msvc2019\bin")}
- if ($MAKE_RELEASE_FILE_URL) { } else { $RELEASE_FILE = "" }
- echo $env:Path
- If ( Test-Path -Path "build-desktop" ) {Remove-Item -recurse -force -path "build-desktop" }
- mkdir build-desktop
- cd build-desktop
#we launch the msvc-cl wrapper located in python scripts folder
#this wrapper relays only needed calls to the real compiler
#cache stats display
- C:\PROGRA~1\Python37\Scripts\cl -s
- sccache --show-stats
- sccache --zero-stats
- Write-Output $CMAKE_ARCHITECTURE
- Write-Output $SCHEDULE_CMAKE_OPTIONS
- Write-Output $MAKEFILE_JOBS
@ -83,7 +71,7 @@
- if ($SET_EXIT_CODE_BASED_ON_SEARCH_STATUS) { Invoke-Expression "$SET_EXIT_CODE_BASED_ON_SEARCH_STATUS" } else { Write-Output "SET_EXIT_CODE_BASED_ON_SEARCH_STATUS is null" }
- if ($SHOW_SEARCH_STATUS_SCRIPT) { Invoke-Expression "$SHOW_SEARCH_STATUS_SCRIPT" } else { Write-Output "SHOW_SEARCH_STATUS_SCRIPT is null" }
- if ($LAUNCH_SEARCH_STATUS_SCRIPT) { Invoke-Expression "$LAUNCH_SEARCH_STATUS_SCRIPT" -ErrorAction stop } else { Write-Output "LAUNCH_SEARCH_STATUS_SCRIPT is null" }
- C:\PROGRA~1\Python37\Scripts\cl -s
- sccache --show-stats
################
artifacts:
@ -95,19 +83,26 @@
- build-desktop\external\linphone-sdk\openh264-prefix\src\openh264-stamp\*
when: always
expire_in: 1 week
.windows-vs2019-msvc:
extends: .windows-vs2019
.windows-vs2019:
extends: .windows-vs
tags: [ "windows-powershell-vs-16-2019" ]
.windows-vs2022:
extends: .windows-vs
tags: [ "windows-powershell-vs-17-2022" ]
.windows-msvc:
variables:
CMAKE_OPTIONS: -DENABLE_UNIT_TESTS=ON -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DLINPHONE_WINDOWS_SIGN_HASH=$WINDOWS_SIGN_HASH -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=ON
LINPHONESDK_PLATFORM: Desktop
CMAKE_GENERATOR: "Visual Studio 16 2019"
BUILD_TARGET: install
PARALLEL_OPTIONS: "-- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false"
EXITS_ON_ERROR_MSVC: 'if (-not ($$LastExitCode -eq 0)) {throw "Error: Build failed"}'
.windows-vs2019-scheduled:
extends: .windows-vs2019-msvc
.windows-msvc-scheduled:
extends: .windows-msvc
rules:
- if: $NIGHTLY_MASTER
- if: $NIGHTLY_RELEASE
@ -120,14 +115,33 @@
# On each push
######################################################
vs2019-msvc-win64-windows:
.msvc-win64-windows:
rules:
- if: ($CI_PIPELINE_SOURCE == "merge_request_event") && $DOCKER_UPDATE == null && $SKIP_WINDOWS == null
variables:
CMAKE_C_COMPILER : cl.exe
CMAKE_CXX_COMPILER : cl.exe
CMAKE_RC_COMPILER : rc.exe
extends: .windows-vs2019-msvc
extends: .windows-msvc
vs2019-msvc-win64-windows:
extends:
- .windows-vs2019
- .msvc-win64-windows
vs2022-msvc-win64-windows:
rules:
- !reference [.rules-merge-request-manual, rules]
extends:
- .windows-vs2022
- .msvc-win64-windows
######################################################
# .windows-vs2019-msvc:
# extends:
# - .windows-vs2019
# - .windows-msvc
######################################################
# NIGHTLY
@ -135,20 +149,30 @@ vs2019-msvc-win64-windows:
## ON SCHEDULE ##
vs2019-win64-scheduled-windows:
.vs-scheduled-windows:
rules:
- !reference [.rules-merge-request-manual, rules]
- if: $NIGHTLY_MASTER
- if: $DEPLOY_PLUGINS
- if: $DEPLOY_RUN_WINDOWS
extends: vs2019-msvc-win64-windows
vs2019-win64-scheduled-windows:
extends:
- vs2019-msvc-win64-windows
- .vs-scheduled-windows
vs2022-win64-scheduled-windows:
extends:
- vs2022-msvc-win64-windows
- .vs-scheduled-windows
#################################################
# PACKAGE
#################################################
#Remove . when packaging process is ready to use
vs2019-win64-package:
.vs-win64-package:
stage: package
dependencies: []
rules:
@ -157,39 +181,65 @@ vs2019-win64-package:
- if: $NIGHTLY_RELEASE
- if: $PACKAGE_WINDOWS
- if: $DEPLOY_WINDOWS
extends: .windows-vs2019-msvc
variables:
CMAKE_OPTIONS: -DENABLE_APP_PACKAGING=YES -DLINPHONE_WINDOWS_SIGN_TOOL=$WINDOWS_SIGN_TOOL -DLINPHONE_WINDOWS_SIGN_TIMESTAMP_URL=$WINDOWS_SIGN_TIMESTAMP_URL -DLINPHONE_WINDOWS_SIGN_HASH=$WINDOWS_SIGN_HASH -DENABLE_G729=ON -DENABLE_PQCRYPTO=ON -DENABLE_GPL_THIRD_PARTIES=ON
RELEASE_FILE: -DLINPHONE_SDK_MAKE_RELEASE_FILE_URL=$MAKE_RELEASE_FILE_URL/$WINDOWS_PLATFORM/$APP_FOLDER
vs2019-win64-package:
extends:
- .windows-msvc
- .vs-win64-package
- .windows-vs2019
vs2022-win64-package:
extends:
- .windows-msvc
- .vs-win64-package
- .windows-vs2022
#################################################
# DEPLOY
#################################################
.win64-upload:
stage: deploy
tags: [ "windows-powershell" ]
rules:
- if: $NIGHTLY_MASTER
- if: $DEPLOY_WINDOWS
script:
- scp -pr build-desktop/OUTPUT/Packages/*.exe ${DEPLOY_SERVER}:${UPLOAD_ROOT_INTERNAL_PATH}/${WINDOWS_PLATFORM}/${APP_FOLDER}
- if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${DEPLOY_SERVER}:${UPLOAD_ROOT_INTERNAL_PATH}/${WINDOWS_PLATFORM}/ }
# - if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${MAIN_DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/ }
vs2019-win64-upload:
stage: deploy
tags: [ "windows-powershell"]
rules:
- if: $NIGHTLY_MASTER
- if: $DEPLOY_WINDOWS
needs:
- vs2019-win64-package
script:
- scp -pr build-desktop/OUTPUT/Packages/*.exe ${DEPLOY_SERVER}:${UPLOAD_ROOT_INTERNAL_PATH}/${WINDOWS_PLATFORM}/${APP_FOLDER}
- if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${DEPLOY_SERVER}:${UPLOAD_ROOT_INTERNAL_PATH}/${WINDOWS_PLATFORM}/ }
# - if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${MAIN_DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/ }
extends:
- .win64-upload
needs:
- vs2019-win64-package
vs2022-win64-upload:
extends:
- .win64-upload
needs:
- vs2022-win64-package
.win64-plugins-upload:
stage: deploy
tags: [ "windows" ]
rules:
- if: $DEPLOY_PLUGINS
script:
- scp "build-desktop/OUTPUT/plugins/app/*.dll" "%DEPLOY_SERVER%:%WINDOWS_UPLOAD_INTERNAL_DIRECTORY%/plugins"
vs2019-win64-plugins-upload:
stage: deploy
tags: [ "windows"]
rules:
- if: $DEPLOY_PLUGINS
needs:
- vs2019-win64-scheduled-windows
script:
- scp "build-desktop/OUTPUT/plugins/app/*.dll" "%DEPLOY_SERVER%:%WINDOWS_UPLOAD_INTERNAL_DIRECTORY%/plugins"
extends: .win64-plugins-upload
needs:
- vs2019-win64-scheduled-windows
vs2022-win64-plugins-upload:
extends: .win64-plugins-upload
needs:
- vs2022-win64-scheduled-windows

@ -1 +1 @@
Subproject commit 86749bbcd54f72f5405030619ea5c9097dbc54a9
Subproject commit 276fe62d3ae49771dd5316a18a0c77d552ed9e80