mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-21 12:26:36 +08:00
Move linux vcpkg and vcpkg-ports installation files to a common unix directory
These scripts are generic for both linux and macos, we may parameterize them and reuse on both platforms. Change-Id: Ia61cfbbf5c91e2135e38253c4a96605015d2d1b6 Reviewed-by: Alexey Edelev <semlanik@gmail.com>
This commit is contained in:
committed by
Joerg Bornemann
parent
da911f9b20
commit
4456a7f592
29
coin/provisioning/common/unix/install-vcpkg-ports.sh
Executable file
29
coin/provisioning/common/unix/install-vcpkg-ports.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/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"
|
||||
|
||||
echo "Installing vcpkg ports"
|
||||
|
||||
pushd "${BASH_SOURCE%/*}/../shared/vcpkg" || exit
|
||||
|
||||
install_root=$1-tmp
|
||||
|
||||
"$VCPKG_ROOT/vcpkg" install --triplet $1 --x-install-root $install_root --debug
|
||||
|
||||
cmake "-DVCPKG_EXECUTABLE=$VCPKG_ROOT/vcpkg"\
|
||||
"-DVCPKG_INSTALL_ROOT=$PWD/$install_root"\
|
||||
"-DOUTPUT=$HOME/versions.txt"\
|
||||
-P\
|
||||
"${BASH_SOURCE%/*}/../shared/vcpkg_parse_packages.cmake"
|
||||
|
||||
mkdir -p "$VCPKG_ROOT/installed"
|
||||
cp -R $install_root/* "$VCPKG_ROOT/installed/"
|
||||
|
||||
SetEnvVar "VCPKG_INSTALLED_DIR" "$VCPKG_ROOT/installed/"
|
||||
|
||||
rm -rf $install_root
|
||||
|
||||
popd || exit
|
||||
98
coin/provisioning/common/unix/install-vcpkg.sh
Executable file
98
coin/provisioning/common/unix/install-vcpkg.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/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
|
||||
|
||||
# This script will
|
||||
# 1) Clone the vcpkg repo - https://github.com/microsoft/vcpkg/tags
|
||||
# 2) Install the vcpkg-tool - https://github.com/microsoft/vcpkg-tool/tags
|
||||
|
||||
# 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"
|
||||
|
||||
echo "Install the vcpkg-tool"
|
||||
releaseTagFile="${BASH_SOURCE%/*}/../shared/vcpkg_tool_release_tag.txt"
|
||||
for line in $(cat "$releaseTagFile")
|
||||
do
|
||||
IFS='='
|
||||
read -ra keyValue <<< "$line"
|
||||
unset IFS
|
||||
|
||||
case "${keyValue[0]}" in
|
||||
"vcpkg_tool_release_tag")
|
||||
vcpkgToolReleaseTag=${keyValue[1]}
|
||||
;;
|
||||
"unix_checksum")
|
||||
vcpkgToolChecksum=${keyValue[1]}
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z vcpkgToolReleaseTag ]
|
||||
then
|
||||
echo "Unable to read release tag from $releaseTagFile"
|
||||
echo "Content:"
|
||||
cat $releaseTagFile
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z vcpkgToolChecksum ]
|
||||
then
|
||||
echo "Unable to read vcpkg tool Checksum from $releaseTagFile"
|
||||
echo "Content:"
|
||||
cat $releaseTagFile
|
||||
exit 1
|
||||
fi
|
||||
|
||||
nonDottedReleaseTag=${vcpkgToolReleaseTag//-/}
|
||||
|
||||
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"
|
||||
vcpkgToolSourceFolder="$HOME/vcpkg-tool-$vcpkgToolReleaseTag"
|
||||
vcpkgToolBuildFolder="$HOME/vcpkg-tool-$vcpkgToolReleaseTag/build"
|
||||
|
||||
InstallFromCompressedFileFromURL "$vcpkgToolCacheUrl" "$vcpkgToolOfficialUrl" "$vcpkgToolChecksum" "$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/<platform>/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"
|
||||
|
||||
SetEnvVar VCPKG_BINARY_SOURCES "$VCPKG_BINARY_SOURCES"
|
||||
SetEnvVar X_VCPKG_ASSET_SOURCES "$X_VCPKG_ASSET_SOURCES"
|
||||
|
||||
echo "vcpkg = $vcpkgVersion" >> ~/versions.txt
|
||||
Reference in New Issue
Block a user