onnxruntime/tools/ci_build/github/linux/docker/scripts/install_ubuntu.sh
Changming Sun 5f6a3158f8
Enable VCPKG in CI build (#23426)
### Description
1. Enable VCPKG flag in Windows CPU CI build pipelines. 
2. Increased the min supported cmake version from 3.26 to 3.28. Because
of it, drop the support for the old way of finding python by
"find_package(PythonLibs)". Therefore, in build.py we no longer set
"PYTHON_EXECUTABLE" cmake var when doing cmake configure.
3. Added "xnnpack-ep" as a feature for ORT's vcpkg config.
4. Added asset cache support for ORT's vcpkg build
5. Added VCPKG triplet files for Android build.
6. Set VCPKG triplet to "universal2-osx" if CMAKE_OSX_ARCHITECTURES was
found in cmake extra defines.
7. Removed a small piece of code in build.py, which was for support CUDA
version < 11.8.
8. Fixed an issue that CMAKE_OSX_ARCHITECTURES sometimes got specified
twice when build.py invoked cmake.
9. Added more model tests to Android build. After this change, we will
test all ONNX versions instead of just the latest one.
10. Fixed issues that are related to build.py's "--build_nuget"
parameter. Also, enable the flag in most Windows CPU CI build jobs.
11. Removed a restriction in build.py that disallowed cross-compiling
Windows ARM64 nuget package on Windows x86.
 
### Motivation and Context
Adopt vcpkg.
2025-02-05 10:58:53 -08:00

119 lines
3.4 KiB
Bash
Executable file

#!/bin/bash
set -e
while getopts p:d: parameter_Option
do case "${parameter_Option}"
in
p) PYTHON_VER=${OPTARG};;
d) DEVICE_TYPE=${OPTARG};;
*) echo "Usage: $0 -p PYTHON_VER -d DEVICE_TYPE";;
esac
done
PYTHON_VER=${PYTHON_VER:=3.8}
# Some Edge devices only have limited disk space, use this option to exclude some package
DEVICE_TYPE=${DEVICE_TYPE:=Normal}
# shellcheck disable=SC2034
DEBIAN_FRONTEND=noninteractive
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
apt-get update && apt-get install -y software-properties-common lsb-release
OS_VERSION=$(lsb_release -r -s)
PACKAGE_LIST=(
"apt-transport-https"
"apt-utils"
"aria2"
"autoconf"
"automake"
"autotools-dev"
"build-essential"
"bzip2"
"ca-certificates"
"curl"
"gfortran"
"git"
"graphviz"
"language-pack-en"
"libcurl4"
"libcurl4-openssl-dev"
"libexpat1-dev"
"libkrb5-3"
"liblttng-ust-dev"
"libpng-dev"
"libssl-dev"
"libtinfo-dev"
"libtinfo5"
"libtool"
"libunwind8"
"openjdk-17-jdk"
"openssh-server"
"pkg-config"
"python3-dev"
"python3-distutils"
"python3-pip"
"python3-pytest"
"python3-setuptools"
"python3-wheel"
"rsync"
"sudo"
"unzip"
"wget"
"zip"
"zlib1g"
"zlib1g-dev"
)
if [ "$DEVICE_TYPE" = "Normal" ]; then
PACKAGE_LIST+=("libedit-dev" "libxml2-dev" "python3-packaging")
fi
PACKAGE_LIST+=("libicu-dev")
apt-get install -y --no-install-recommends "${PACKAGE_LIST[@]}"
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
if [ "$OS_VERSION" = "20.04" ]; then
# The defaul version of python is 3.8
major=$(echo "$PYTHON_VER" | cut -d. -f1)
minor=$(echo "$PYTHON_VER" | cut -d. -f2)
if [ "$major" -lt 3 ] || [ "$major" -eq 3 ] && [ "$minor" -lt 8 ]; then
PYTHON_VER="3.8"
fi
if [ "$PYTHON_VER" != "3.8" ]; then
add-apt-repository -y ppa:deadsnakes/ppa
apt-get update
apt-get install -y --no-install-recommends \
python"${PYTHON_VER}" \
python"${PYTHON_VER}-"dev
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python"${PYTHON_VER}" 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
update-alternatives --set python3 /usr/bin/python"${PYTHON_VER}"
#TODO: the old one(/usr/bin/pip3) should be uninstalled first. Because the one will be
#put at /usr/local/. Then there will be two pips.
/usr/bin/python"${PYTHON_VER}" -m pip install --upgrade --force-reinstall pip==19.0.3
fi
elif [ "$OS_VERSION" = "22.04" ] ; then
# The defaul version of python is 3.10
major=$(echo "$PYTHON_VER" | cut -d. -f1)
minor=$(echo "$PYTHON_VER" | cut -d. -f2)
if [ "$major" -lt 3 ] || [ "$major" -eq 3 ] && [ "$minor" -lt 10 ]; then
PYTHON_VER="3.10"
fi
if [ "$PYTHON_VER" != "3.10" ]; then
add-apt-repository -y ppa:deadsnakes/ppa
apt-get update
apt-get install -y --no-install-recommends \
python"${PYTHON_VER}" \
python"${PYTHON_VER}"-dev
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python"${PYTHON_VER}" 1
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
update-alternatives --set python3 /usr/bin/python"${PYTHON_VER}"
fi
else
exit 1
fi
rm -rf /var/lib/apt/lists/*