Files
qt5/coin/provisioning/common/linux/install-vcpkg.sh
Amir Masoud Abdol a5a6393145 Provisioning: Install OpenSSL via Vcpkg on Linux
- Add a custom triplets for building dynamic android libraries
- Set `ANDROID_NDK_HOME` environment variable, as it is needed when
  vcpkg builds for Android.
- Install `perl-IPC-Cmd` when necessary, requirement for OpenSSL.
- Install openSSL for x64-linux-qt, x86-android-qt, and
  x86_64-android-qt. The latter android triplet has been renamed from
  vcpkg's official `x64-android.cmake` triplet to further clarify the
  android abi.
- Adjusted version.txt to account for the existence of two OpenSSL. The
  system OpenSSL now shows up as `System's OpenSSL` in `version.txt`.

Task-number: QTBUG-115715
Change-Id: I6cf9b808d26bbea97ebeeadac58cef5ede25ee50
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-12-18 06:32:32 +01:00

60 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (C) 2023 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
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
vcpkgVersion=$(grep 'vcpkg_version=' "${BASH_SOURCE%/*}/../shared/vcpkg_version.txt" | cut -d '=' -f 2)
vcpkgRoot="$HOME/vcpkg-$vcpkgVersion"
vcpkgRepo=$(head -n 1 "${BASH_SOURCE%/*}/../shared/vcpkg_registry_mirror.txt")
echo "Cloning the vcpkg repo"
git clone "$vcpkgRepo" "$vcpkgRoot"
git -C "$vcpkgRoot" checkout "tags/$vcpkgVersion"
vcpkgToolReleaseTag=$(grep 'vcpkg_tool_release_tag=' "${BASH_SOURCE%/*}/../shared/vcpkg_tool_release_tag.txt" | cut -d '=' -f 2)
nonDottedReleaseTag=${vcpkgVersion//-/}
vcpkgToolOfficialUrl="https://github.com/microsoft/vcpkg-tool/archive/refs/tags/$vcpkgToolReleaseTag.tar.gz"
vcpkgToolCacheUrl="http://ci-files01-hki.ci.qt.io/input/vcpkg/vcpkg-tool-$nonDottedReleaseTag.tar.gz"
vcpkgToolSHA1="c6029714fca0304779f10c9c1cbe4b061a2fd945"
vcpkgToolSourceFolder="$HOME/vcpkg-tool-$vcpkgToolReleaseTag"
vcpkgToolBuildFolder="$HOME/vcpkg-tool-$vcpkgToolReleaseTag/build"
InstallFromCompressedFileFromURL "$vcpkgToolCacheUrl" "$vcpkgToolOfficialUrl" "$vcpkgToolSHA1" "$HOME" ""
cmake -S $vcpkgToolSourceFolder -B $vcpkgToolBuildFolder -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF
cmake --build $vcpkgToolBuildFolder --parallel
cp $vcpkgToolBuildFolder/vcpkg $vcpkgRoot/
rm -rf $vcpkgToolSourceFolder
if [ ! -f "$vcpkgRoot/vcpkg" ]
then
echo "Can't find $vcpkgRoot/vcpkg."
exit 1
fi
chmod 755 "$vcpkgRoot/vcpkg"
touch "$vcpkgRoot/vcpkg.disable-metrics"
# Setting VCPKG_ROOT using Set-EnvVar makes the variable only
# available during build time. In order to make it available during the
# provisioning, we need to directly set it via $env:VCPKG_ROOT as well.
SetEnvVar "VCPKG_ROOT" "$vcpkgRoot"
export VCPKG_ROOT="$vcpkgRoot"
# Set a source for vcpkg Binary and Asset Cache
# The `coin/provisioning/common/linux/mount-vcpkg-cache-drive.sh` script is
# mounting the SMB share located in `vcpkg-server.ci.qt.io/vcpkg` to
# $HOME/vcpkg-cache/
export VCPKG_BINARY_SOURCES="files,$HOME/vcpkg-cache/binaries,readwrite"
export X_VCPKG_ASSET_SOURCES="x-azurl,file:///$HOME/vcpkg-cache/assets,,readwrite"
echo "vcpkg = $vcpkgVersion" >> ~/versions.txt