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>
This commit is contained in:
Amir Masoud Abdol
2023-11-30 11:17:48 +01:00
parent a1b278c3a3
commit a5a6393145
18 changed files with 151 additions and 5 deletions

View File

@@ -80,6 +80,10 @@ SetEnvVar "ANDROID_NDK_ROOT_DEFAULT" "$targetFolder/android-ndk-$ndkVersionDefau
InstallNdk $ndkVersionLatest $ndkSha1Latest
SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$targetFolder/android-ndk-$ndkVersionLatest"
# To be used by vcpkg
SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionDefault"
export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionDefault"
echo "Changing ownership of Android files."
if uname -a |grep -q "el7"; then
sudo chown -R qt:wheel "$targetFolder"

View File

@@ -0,0 +1,24 @@
#!/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
echo "Installing vcpkg android ports"
pushd "${BASH_SOURCE%/*}/vcpkg" || exit
cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
$VCPKG_ROOT/vcpkg install --triplet x86-android-qt --x-install-root x86-android-qt-tmp --debug
$VCPKG_ROOT/vcpkg install --triplet x86_64-android-qt --x-install-root x86_64-android-qt-tmp --debug
mkdir -p $VCPKG_ROOT/installed
cp -R x86-android-qt-tmp/* $VCPKG_ROOT/installed/
cp -R x86_64-android-qt-tmp/* $VCPKG_ROOT/installed/
versions=$(jq -r '.overrides[] | "vcpkg \(.name) for android = \(.version)"' vcpkg.json)
versions="${versions//vcpkg/\\nvcpkg}"
echo $versions >> ~/versions.txt
rm -rf x86-android-qt-tmp
rm -rf x86_64-android-qt-tmp
popd || exit

View File

@@ -0,0 +1,21 @@
#!/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
echo "Installing vcpkg ports"
pushd "${BASH_SOURCE%/*}/vcpkg" || exit
cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
$VCPKG_ROOT/vcpkg install --triplet x64-linux-qt --x-install-root x64-linux-qt-tmp --debug
mkdir -p "$VCPKG_ROOT/installed"
cp -R x64-linux-qt-tmp/* $VCPKG_ROOT/installed/
versions=$(jq -r '.overrides[] | "vcpkg \(.name) = \(.version)"' vcpkg.json)
versions="${versions//vcpkg/\\nvcpkg}"
echo $versions >> ~/versions.txt
rm -rf x64-linux-qt-tmp
popd || exit

0
coin/provisioning/common/linux/install-vcpkg.sh Normal file → Executable file
View File

View File

@@ -1,3 +1,12 @@
{
"overrides": [
{
"name": "openssl",
"version": "3.0.7",
"port-version": 2
}
],
"dependencies": [
"openssl"
]
}