aboutsummaryrefslogtreecommitdiffstats
path: root/coin
diff options
context:
space:
mode:
authorKonrad Kujawa <konrad.kujawa@qt.io>2022-11-02 09:22:00 +0100
committerKonrad Kujawa <konrad.kujawa@qt.io>2022-12-07 07:57:21 +0100
commit63d72293b71021a79784b5373cd33ff3682c8836 (patch)
tree99c2dd78b43b9128341c9ec370057732b093c0fc /coin
parent21be8b0c057bee1da0da40ff026c8cb97ab0740e (diff)
Add provisioning for gRPC
Add provisioning scripts to install gRPC. gRPC is requirement to build QtGrpc Task-number: QTBUG-105492 Change-Id: I1a6d008a1d2c1616000909aacdb721401f706168 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'coin')
-rw-r--r--coin/platform_configs/cmake_platforms.yaml39
-rw-r--r--coin/platform_configs/cmake_platforms_static_tests.yaml3
-rw-r--r--coin/platform_configs/macos.yaml4
-rw-r--r--coin/provisioning/common/unix/install_grpc.sh102
-rw-r--r--coin/provisioning/common/windows/grpc.ps1179
-rw-r--r--coin/provisioning/qtci-linux-RHEL-8.4-x86_64/61-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-linux-RHEL-9.0-x86_64/61-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/61-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/61-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/61-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/61-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-macos-11-arm/36-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-macos-11-x86_64/36-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-macos-12-arm/36-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-macos-12-x86_64/36-install_grpc.sh46
-rw-r--r--coin/provisioning/qtci-macos-13-arm/36-install_grpc.sh46
16 files changed, 817 insertions, 16 deletions
diff --git a/coin/platform_configs/cmake_platforms.yaml b/coin/platform_configs/cmake_platforms.yaml
index 5e77beca..7d4419d6 100644
--- a/coin/platform_configs/cmake_platforms.yaml
+++ b/coin/platform_configs/cmake_platforms.yaml
@@ -51,7 +51,8 @@ Configurations:
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}}',
'CONAN_PROFILE=coin/conan/profiles/ci-windows-x86_64-msvc2019_64',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Template: 'qtci-windows-11_22H2-x86_64-50'
@@ -62,7 +63,8 @@ Configurations:
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}}',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Template: 'qtci-windows-10_22H2-x86_64-50'
@@ -73,7 +75,8 @@ Configurations:
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}}',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Template: 'qtci-windows-11_22H2-x86_64-50'
@@ -84,7 +87,8 @@ Configurations:
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}}',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Id: 'Windows10_22H2-MSVC2019-x64-host'
@@ -96,7 +100,8 @@ Configurations:
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'CONAN_PROFILE=coin/conan/profiles/ci-windows-x86_64-msvc2019_64-developer',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Template: 'qtci-windows-10_22H2-x86_64-50'
@@ -112,7 +117,8 @@ Configurations:
'OPENSSL_CONF_x64={{.Env.OPENSSL_CONF_x64_arm64}}',
'OPENSSL_INCLUDE_x64={{.Env.OPENSSL_INCLUDE_x64_arm64}}',
'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Id: 'Windows11_22H2-MSVC2019-x64-host'
@@ -123,7 +129,8 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Template: 'qtci-windows-11_22H2-x86_64-50'
@@ -136,7 +143,8 @@ Configurations:
'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON',
'CONAN_HOST_PROFILE=coin/conan/profiles/ci-windows-x86_64-msvc2019_64',
'CONAN_PROFILE=coin/conan/profiles/ci-windows-arm64-msvc2019_64',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Id: 'RHEL-8.4-host'
@@ -175,7 +183,8 @@ Configurations:
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_system_tiff=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}}',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
'CONAN_PROFILE=coin/conan/profiles/ci-windows-x86_64-mingw',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_mingw}}',
]
-
Id: 'Windows10_22H2-LLVM-x64-host'
@@ -188,7 +197,8 @@ Configurations:
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_system_tiff=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_LLVM_MINGW}}',
'LLVM_INSTALL_DIR=C:\llvm-mingw',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_llvm_mingw}}',
]
-
Id: 'Windows11_22H2-LLVM-x64-host'
@@ -201,7 +211,8 @@ Configurations:
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_system_tiff=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_LLVM_MINGW}}',
'LLVM_INSTALL_DIR=C:\llvm-mingw',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_llvm_mingw}}',
]
-
Template: 'qtci-windows-10_22H2-x86_64-50'
@@ -213,7 +224,8 @@ Configurations:
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_system_tiff=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}}',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_mingw}}',
]
-
Template: 'qtci-windows-11_22H2-x86_64-50'
@@ -225,5 +237,6 @@ Configurations:
'CMAKE_ARGS=-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_system_tiff=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MINGW}}',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_mingw}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_mingw}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_mingw}}',
]
diff --git a/coin/platform_configs/cmake_platforms_static_tests.yaml b/coin/platform_configs/cmake_platforms_static_tests.yaml
index 3cdcedc3..f845019b 100644
--- a/coin/platform_configs/cmake_platforms_static_tests.yaml
+++ b/coin/platform_configs/cmake_platforms_static_tests.yaml
@@ -17,7 +17,8 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
- 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}'
+ 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
+ 'gRPC_ROOT={{.Env.gRPC_ROOT_msvc}}',
]
-
Template: 'qtci-macos-11-x86_64-105'
diff --git a/coin/platform_configs/macos.yaml b/coin/platform_configs/macos.yaml
index e527cf65..1d58e5df 100644
--- a/coin/platform_configs/macos.yaml
+++ b/coin/platform_configs/macos.yaml
@@ -31,7 +31,7 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"',
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf',
- 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
+ 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}',
]
# Test on all supported macOS versions (deployment targets)
@@ -104,7 +104,7 @@ Configurations:
Configure arguments: '-developer-build -nomake examples -release -force-debug-info -separate-debug-info -framework'
Environment variables: [
'Protobuf_ROOT=/usr/local/lib/cmake/protobuf',
- 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}'
+ 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}',
]
# Note: We do not include OpenSSL or PostgreSQL in this build,
# as the M1 CI machines are not provisioned for that yet.
diff --git a/coin/provisioning/common/unix/install_grpc.sh b/coin/provisioning/common/unix/install_grpc.sh
new file mode 100644
index 00000000..0ca8302c
--- /dev/null
+++ b/coin/provisioning/common/unix/install_grpc.sh
@@ -0,0 +1,102 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# This script installs gRPC from sources.
+set -ex
+
+# shellcheck source=./DownloadURL.sh
+source "${BASH_SOURCE%/*}/DownloadURL.sh"
+# shellcheck source=./SetEnvVar.sh
+source "${BASH_SOURCE%/*}/SetEnvVar.sh"
+
+# Extract cmake path from the environment
+if uname -a |grep -q "Ubuntu"; then
+ if lsb_release -a |grep "Ubuntu 22.04"; then
+ source ~/.bash_profile
+ else
+ source ~/.profile
+ fi
+else
+ source ~/.bashrc
+fi
+
+version="1.50.1"
+sha1="be1b0c3dbfbc9714824921f50dffb7cf044da5ab"
+internalUrl="http://ci-files01-hki.intra.qt.io/input/automotive_suite/grpc-all-$version.zip"
+externalUrl=""
+installPrefix="$HOME/install-grpc-$version"
+
+targetDir="$HOME/grpc-$version"
+targetFile="$targetDir.zip"
+DownloadURL "$internalUrl" "$externalUrl" "$sha1" "$targetFile"
+unzip "$targetFile" -d "$HOME"
+sudo rm "$targetFile"
+
+# devtoolset is needed when running configuration
+if uname -a |grep -qv "Darwin"; then
+ export PATH="/opt/rh/devtoolset-7/root/usr/bin:$PATH"
+fi
+
+if uname -a |grep -q Darwin; then
+ extraCMakeArgs="-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11"
+ extraOpenSslArg=-DOPENSSL_ROOT_DIR=$OPENSSL_DIR
+ SetEnvVar PATH "\$PATH:$installPrefix/bin"
+fi
+
+echo "Configuring and building gRPC"
+
+buildDir="$HOME/build-grpc-$version"
+mkdir -p "$buildDir"
+cd "$buildDir"
+cmake $targetDir -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" -DCMAKE_INSTALL_PREFIX=$installPrefix $extraCMakeArgs $extraOpenSslArg -DgRPC_BUILD_TESTS=OFF -DgRPC_PROTOBUF_PROVIDER="package" -DgRPC_SSL_PROVIDER="package" -DgRPC_ZLIB_PROVIDER="package"
+ninja all
+
+sudo env "PATH=$PATH" ninja install
+# Refresh shared library cache if OS isn't macOS
+if uname -a |grep -qv "Darwin"; then
+ sudo ldconfig
+fi
+
+SetEnvVar "gRPC_ROOT" "$installPrefix"
+SetEnvVar "absl_ROOT" "$installPrefix"
+
+sudo rm -rf "$targetDir"
+sudo rm -rf "$buildDir"
diff --git a/coin/provisioning/common/windows/grpc.ps1 b/coin/provisioning/common/windows/grpc.ps1
new file mode 100644
index 00000000..5e0e1bf9
--- /dev/null
+++ b/coin/provisioning/common/windows/grpc.ps1
@@ -0,0 +1,179 @@
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+. "$PSScriptRoot\helpers.ps1"
+
+# Here we build gRPC libraries for MinGW and MSVC.
+# Since it's a c++ library we need both msvc and mingw because they mangle symbols differently.
+# For MSVC it builds with both debug and release configurations because of the visual c++ runtime.
+# For MinGW we only need one, so we only build with release.
+# The function below takes care of the common part of building - invoking cmake,
+# calling ninja and installing it to a directory which we set an environment variable to.
+# Because we have two compilers we also have two env. vars. and then each
+# config in CI has the gRPC_ROOT set to the appropriate one.
+function build-install-grpc {
+ param(
+ [string]$CC,
+ [string]$CXX,
+ [string]$BuildType,
+ [string]$Postfix # Used for install-path and the environment variable name
+ )
+ $installPrefix = "C:\Utils\grpc"
+ $installPath = "${installPrefix}-$Postfix"
+ Write-Output "Configuring and building gRPC for $CXX"
+ $oldCC = $env:CC
+ $oldCXX = $env:CXX
+ $env:CC = $CC
+ $env:CXX = $CXX
+ $Protobuf_ROOT="C:\Utils\protobuf-$Postfix"
+ if (!(Test-Path $Protobuf_ROOT -ErrorAction SilentlyContinue)) {
+ throw "Protobuf is missing, expected at `"$Protobuf_ROOT`"."
+ }
+ $OPENSSL_ROOT_DIR="C:\openssl"
+ if (!(Test-Path $OPENSSL_ROOT_DIR -ErrorAction SilentlyContinue)) {
+ throw "OpenSSL is missing, expected at `"$OPENSSL_ROOT_DIR`"."
+ }
+ Remove build-grpc
+ mkdir build-grpc
+ Push-Location build-grpc
+ $configureOptions = @(
+ # plugins
+ "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF"
+ "-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF"
+ "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF"
+ "-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF"
+ "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF"
+ "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF"
+ # extensions
+ "-DgRPC_BUILD_CSHARP_EXT=OFF"
+ # general
+ "-DgRPC_BUILD_TESTS=OFF"
+ "-DgRPC_PROTOBUF_PROVIDER=`"package`""
+ "-DgRPC_SSL_PROVIDER=`"package`""
+ "-DOPENSSL_ROOT_DIR=`"$OPENSSL_ROOT_DIR`""
+ # protobuf
+ "-DProtobuf_USE_STATIC_LIBS=ON"
+ "-DProtobuf_ROOT=`"$Protobuf_ROOT`""
+ )
+ cmake .. -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="$BuildType" -DCMAKE_INSTALL_PREFIX="$installPath" $extraCMakeArgs $configureOptions
+ $result = $LASTEXITCODE
+ if ($result -eq 0) {
+ # ninja install:all # This is broken and does not work
+ foreach ($config in $BuildType.split(";")) {
+ ninja -f "build-$config.ninja" install
+ }
+ $result = $LASTEXITCODE
+ }
+ $env:CC = $oldCC
+ $env:CXX = $oldCXX
+ Set-EnvironmentVariable "gRPC_ROOT_$Postfix" "$InstallPath"
+ Pop-Location
+ Remove build-grpc
+ if ($result -ne 0) {
+ throw "Build exited with $result"
+ }
+}
+
+
+# Ensures a tool is in path or adds it to path if the $Path supplied to it
+# contains it. Will throw if it's not found at all
+function Find-Tool {
+ param(
+ [string]$Name,
+ [string]$Path
+ )
+ # Is tool missing from path?
+ if (!(Get-Command $Name -ErrorAction SilentlyContinue)) {
+ # Is tool in the $Path directory?
+ if (Test-Path "$Path\$Name" -ErrorAction SilentlyContinue) {
+ $env:Path += ";$Path"
+ }
+ else {
+ throw "Cannot find $Name in path or $Name in $Path, something is configured wrong"
+ }
+ }
+}
+# This script is fairly late in provisioning so both of these should be present!
+Find-Tool -Name "cmake.exe" -Path "C:\CMake\bin"
+Find-Tool -Name "ninja.exe" -Path "C:\Utils\Ninja"
+
+$version="1.50.1"
+$sha1="be1b0c3dbfbc9714824921f50dffb7cf044da5ab"
+$internalUrl="http://ci-files01-hki.intra.qt.io/input/automotive_suite/grpc-all-$version.zip"
+$externalUrl=""
+
+$basedir = "$env:HOMEDRIVE\$env:HOMEPATH\grpc"
+mkdir $basedir
+$targetDir = "$basedir\grpc-$version"
+$targetFile = "$targetDir.zip"
+Download $externalUrl $internalUrl $targetFile
+Verify-Checksum $targetFile $sha1
+Extract-7Zip $targetFile $basedir
+Remove $targetFile
+
+Push-Location $basedir
+
+# Create a new top-level CMakeLists.txt file so we can set a modern policy
+# for find_package calls
+Write-Output "cmake_minimum_required(VERSION 3.5.1)`nproject(grpc LANGUAGES C CXX)`ncmake_policy(SET CMP0074 NEW)`nadd_subdirectory(grpc-$version)" | Out-File CMakeLists.txt -Encoding utf8
+
+### MinGW
+
+# Check if mingw is where we expect it to be and add it to path:
+$mingwPath = "C:\MINGW1120\mingw64\bin"
+if (!(Test-Path $mingwPath)) {
+ throw "Cannot find mingw in $mingwPath, something is configured wrong"
+}
+
+$oldPath = $env:Path
+$env:Path = "$mingwPath;$env:Path"
+build-install-grpc -CC "gcc" -CXX "g++" -BuildType "Release" -Postfix "mingw"
+$env:Path = $oldPath
+
+### LLVM MinGW
+
+# $llvmMingwPath = "C:\llvm-mingw"
+# if (!(Test-Path $llvmMingwPath)) {
+# throw "Cannot find llvm-mingw in $llvmMingwPath, something is configured wrong"
+# }
+
+$oldPath = $env:Path
+$env:Path = "$llvmMingwPath\bin;$env:Path"
+# build-install-grpc -CC "clang" -CXX "clang++" -BuildType "Release" -Postfix "llvm_mingw"
+$env:Path = $oldPath
+
+### MSVC
+
+# Add cl to path if it is not already there
+if (!(Get-Command cl.exe -ErrorAction SilentlyContinue)) {
+ $vswhere = "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"
+ $vc_component = "Microsoft.VisualStudio.Component.VC.CoreIde"
+ # We pick the oldest build tools we can find and use that to be compatible with it and any newer version:
+ # If MSVC has an ABI break this will stop working, and yet another build must be added.
+ $vs_location = (& $vswhere -nologo -products * -requires $vc_component -sort -format value -property installationPath | Select-Object -Last 1)
+ $vcvars_location = Join-Path $vs_location "VC\Auxiliary\Build\"
+
+ Push-Location $vcvars_location
+
+ # This snippet was stolen from https://stackoverflow.com/a/2124759
+ # Grabs all the environment variables that the script has set and assigns it
+ # to environment variables in PowerShell (calling batch files creates a
+ # cmd.exe instance which does not propagate environment variables)
+ cmd /c "vcvarsall.bat $env:PROCESSOR_ARCHITECTURE & set" |
+ ForEach-Object {
+ if ($_ -match "=") {
+ $v = $_.Split("=");
+ Set-Item -Force -Path "ENV:\$($v[0])" -Value "$($v[1])"
+ }
+ }
+
+ Pop-Location
+}
+
+build-install-grpc -CC "cl" -CXX "cl" -BuildType "Release" -Postfix "msvc"
+
+$env:Path = $oldPath
+Pop-Location
+Remove $basedir
+
+Write-Output "gRPC = $version" >> ~/versions.txt
diff --git a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/61-install_grpc.sh b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/61-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/61-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/61-install_grpc.sh b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/61-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/61-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/61-install_grpc.sh b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/61-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/61-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/61-install_grpc.sh b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/61-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/61-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/61-install_grpc.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/61-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/61-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/61-install_grpc.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/61-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/61-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-macos-11-arm/36-install_grpc.sh b/coin/provisioning/qtci-macos-11-arm/36-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-macos-11-arm/36-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-macos-11-x86_64/36-install_grpc.sh b/coin/provisioning/qtci-macos-11-x86_64/36-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-macos-11-x86_64/36-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-macos-12-arm/36-install_grpc.sh b/coin/provisioning/qtci-macos-12-arm/36-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-macos-12-arm/36-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-macos-12-x86_64/36-install_grpc.sh b/coin/provisioning/qtci-macos-12-x86_64/36-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-macos-12-x86_64/36-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+
diff --git a/coin/provisioning/qtci-macos-13-arm/36-install_grpc.sh b/coin/provisioning/qtci-macos-13-arm/36-install_grpc.sh
new file mode 100644
index 00000000..cd557707
--- /dev/null
+++ b/coin/provisioning/qtci-macos-13-arm/36-install_grpc.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+
+#############################################################################
+##
+## Copyright (C) 2022 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the provisioning scripts of the Qt Toolkit.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## Commercial License Usage
+## Licensees holding valid commercial Qt licenses may use this file in
+## accordance with the commercial license agreement provided with the
+## Software or, alternatively, in accordance with the terms contained in
+## a written agreement between you and The Qt Company. For licensing terms
+## and conditions see https://www.qt.io/terms-conditions. For further
+## information use the contact form at https://www.qt.io/contact-us.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 3 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL3 included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 3 requirements
+## will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+##
+## GNU General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 2.0 or (at your option) the GNU General
+## Public license version 3 or any later version approved by the KDE Free
+## Qt Foundation. The licenses are as published by the Free Software
+## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+## included in the packaging of this file. Please review the following
+## information to ensure the GNU General Public License requirements will
+## be met: https://www.gnu.org/licenses/gpl-2.0.html and
+## https://www.gnu.org/licenses/gpl-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+set -ex
+
+# shellcheck source=../common/unix/install_grpc.sh
+source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"
+