mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-01 19:36:04 +08:00
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:
@@ -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"
|
||||
|
||||
24
coin/provisioning/common/linux/install-vcpkg-ports-android.sh
Executable file
24
coin/provisioning/common/linux/install-vcpkg-ports-android.sh
Executable 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
|
||||
21
coin/provisioning/common/linux/install-vcpkg-ports.sh
Executable file
21
coin/provisioning/common/linux/install-vcpkg-ports.sh
Executable 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
0
coin/provisioning/common/linux/install-vcpkg.sh
Normal file → Executable file
@@ -1,3 +1,12 @@
|
||||
{
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"name": "openssl",
|
||||
"version": "3.0.7",
|
||||
"port-version": 2
|
||||
}
|
||||
],
|
||||
"dependencies": [
|
||||
"openssl"
|
||||
]
|
||||
}
|
||||
|
||||
13
coin/provisioning/common/shared/triplets/x64-linux-qt.cmake
Normal file
13
coin/provisioning/common/shared/triplets/x64-linux-qt.cmake
Normal file
@@ -0,0 +1,13 @@
|
||||
set(VCPKG_TARGET_ARCHITECTURE x64)
|
||||
|
||||
# Default settings of the triplet from the official vcpkg registry
|
||||
set(VCPKG_CRT_LINKAGE dynamic)
|
||||
set(VCPKG_LIBRARY_LINKAGE static)
|
||||
|
||||
# Qt custom per-port customizations
|
||||
if(PORT MATCHES "openssl")
|
||||
set(VCPKG_LIBRARY_LINKAGE dynamic)
|
||||
set(VCPKG_FIXUP_ELF_RPATH ON)
|
||||
endif()
|
||||
|
||||
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
|
||||
@@ -0,0 +1,15 @@
|
||||
set(VCPKG_TARGET_ARCHITECTURE x86)
|
||||
|
||||
# Default settings of the triplet from the official vcpkg registry
|
||||
set(VCPKG_CRT_LINKAGE static)
|
||||
set(VCPKG_LIBRARY_LINKAGE static)
|
||||
|
||||
# Qt custom per-port customizations
|
||||
if(PORT MATCHES "openssl")
|
||||
set(VCPKG_CRT_LINKAGE dynamic)
|
||||
set(VCPKG_LIBRARY_LINKAGE dynamic)
|
||||
endif()
|
||||
|
||||
set(VCPKG_CMAKE_SYSTEM_NAME Android)
|
||||
set(VCPKG_MAKE_BUILD_TRIPLET "--host=i686-linux-android")
|
||||
set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86)
|
||||
@@ -0,0 +1,15 @@
|
||||
set(VCPKG_TARGET_ARCHITECTURE x64)
|
||||
|
||||
# Default settings of the triplet from the official vcpkg registry
|
||||
set(VCPKG_CRT_LINKAGE static)
|
||||
set(VCPKG_LIBRARY_LINKAGE static)
|
||||
|
||||
# Qt custom per-port customizations
|
||||
if(PORT MATCHES "openssl")
|
||||
set(VCPKG_CRT_LINKAGE dynamic)
|
||||
set(VCPKG_LIBRARY_LINKAGE dynamic)
|
||||
endif()
|
||||
|
||||
set(VCPKG_CMAKE_SYSTEM_NAME Android)
|
||||
set(VCPKG_MAKE_BUILD_TRIPLET "--host=x86_64-linux-android")
|
||||
set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86_64)
|
||||
@@ -143,6 +143,8 @@ installPackages+=(cifs-utils)
|
||||
installPackages+=(jq)
|
||||
# zip, needed for vcpkg caching
|
||||
installPackages+=(zip)
|
||||
# OpenSSL requirement, built by vcpkg
|
||||
installPackages+=(perl-IPC-Cmd)
|
||||
|
||||
sudo yum -y install "${installPackages[@]}"
|
||||
|
||||
@@ -163,4 +165,4 @@ sudo /usr/bin/pip3 install wheel
|
||||
sudo /usr/bin/pip3 install dataclasses
|
||||
|
||||
OpenSSLVersion="$(openssl3 version |cut -b 9-14)"
|
||||
echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
|
||||
14
coin/provisioning/qtci-linux-RHEL-8.8-x86_64/42-install-vcpkg-ports.sh
Executable file
14
coin/provisioning/qtci-linux-RHEL-8.8-x86_64/42-install-vcpkg-ports.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/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"
|
||||
echo "VCPKG_ROOT: ${VCPKG_ROOT}"
|
||||
echo "ANDOID_NDK_HOME: ${ANDROID_NDK_HOME}"
|
||||
|
||||
# Installing common ports
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/install-vcpkg-ports.sh"
|
||||
|
||||
# Installing platform specific ports
|
||||
"$BASEDIR/../common/linux/install-vcpkg-ports-android.sh"
|
||||
@@ -150,6 +150,8 @@ installPackages+=(cifs-utils)
|
||||
installPackages+=(jq)
|
||||
# zip, needed for vcpkg caching
|
||||
installPackages+=(zip)
|
||||
# OpenSSL requirement, built by vcpkg
|
||||
installPackages+=(perl-IPC-Cmd)
|
||||
|
||||
sudo yum -y install "${installPackages[@]}"
|
||||
|
||||
@@ -174,4 +176,4 @@ sudo /usr/bin/pip3 install wheel
|
||||
sudo ln -s /usr/bin/python3 /usr/local/bin/python3
|
||||
|
||||
OpenSSLVersion="$(openssl version |cut -b 9-14)"
|
||||
echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
|
||||
6
coin/provisioning/qtci-linux-RHEL-9.2-x86_64/42-install-vcpkg-ports.sh
Executable file
6
coin/provisioning/qtci-linux-RHEL-9.2-x86_64/42-install-vcpkg-ports.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/install-vcpkg-ports.sh"
|
||||
@@ -107,3 +107,6 @@ sudo zypper -nq install cifs-utils
|
||||
|
||||
gccVersion="$(gcc --version |grep gcc |cut -b 17-23)"
|
||||
echo "GCC = $gccVersion" >> versions.txt
|
||||
|
||||
OpenSSLVersion="$(openssl-3 version |cut -b 9-14)"
|
||||
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/install-vcpkg-ports.sh"
|
||||
@@ -241,4 +241,4 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
|
||||
# SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH"
|
||||
|
||||
OpenSSLVersion="$(openssl version |cut -b 9-14)"
|
||||
echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/install-vcpkg-ports.sh"
|
||||
@@ -82,4 +82,4 @@ gccVersion="$(gcc --version |grep gcc |cut -b 17-23)"
|
||||
echo "GCC = $gccVersion" >> versions.txt
|
||||
|
||||
OpenSSLVersion="$(openssl-3 version |cut -b 9-14)"
|
||||
echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex
|
||||
|
||||
BASEDIR=$(dirname "$0")
|
||||
"$BASEDIR/../common/linux/install-vcpkg-ports.sh"
|
||||
Reference in New Issue
Block a user