diff --git a/.gitlab-ci-files/windows-desktop.yml b/.gitlab-ci-files/windows-desktop.yml index 3b305156c..e4cc8a3fd 100644 --- a/.gitlab-ci-files/windows-desktop.yml +++ b/.gitlab-ci-files/windows-desktop.yml @@ -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 \ No newline at end of file diff --git a/external/linphone-sdk b/external/linphone-sdk index 86749bbcd..276fe62d3 160000 --- a/external/linphone-sdk +++ b/external/linphone-sdk @@ -1 +1 @@ -Subproject commit 86749bbcd54f72f5405030619ea5c9097dbc54a9 +Subproject commit 276fe62d3ae49771dd5316a18a0c77d552ed9e80