You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
exiv2/ci/install_dependencies.sh

70 lines
2.5 KiB
Bash

#!/bin/bash
set -e
# this script expects one parameter, which is the path to utils.source
# if the parameter is omitted, it defaults to the relative path in the
# repository, but it can be provided manually (e.g. for vagrant VMs)
if [ $# -eq 0 ]; then
source $(dirname "${BASH_SOURCE[0]}")/../contrib/vms/utils.source
elif [ $# -gt 1 ]; then
cat << EOF
usage: install_dependencies.sh [path/to/utils.source]
Installs the dependencies required to build & test exiv2 on some Linux
distributions.
The optional parameter is the path to the utils.source file, which can be set to
an alternative location (currently used for vagrant builds)
EOF
exit 1
else
source "$1"
fi
distro_id=$(get_distro_id)
case "$distro_id" in
'fedora')
dnf -y --refresh install gcc-c++ clang cmake make ccache expat-devel zlib-devel libssh-devel libcurl-devel gtest-devel which dos2unix
;;
'debian')
apt-get update
apt-get install -y cmake g++ clang make ccache python3 libexpat1-dev zlib1g-dev libssh-dev libcurl4-openssl-dev libgtest-dev libxml2-utils
debian_build_gtest
;;
'arch')
pacman --noconfirm -Sy
pacman --noconfirm -S gcc clang cmake make ccache expat zlib libssh curl gtest python dos2unix
;;
'ubuntu')
apt-get update
apt-get install -y cmake g++ clang make ccache python3 libexpat1-dev zlib1g-dev libssh-dev libcurl4-openssl-dev libgtest-dev google-mock libxml2-utils
debian_build_gtest
;;
'centos'|'rhel')
yum -y install epel-release
# enable copr for gtest
curl https://copr.fedorainfracloud.org/coprs/defolos/devel/repo/epel-7/defolos-devel-epel-7.repo > /etc/yum.repos.d/_copr_defolos-devel.repo
yum clean all
yum -y install gcc-c++ clang cmake3 make ccache expat-devel zlib-devel libssh-devel libcurl-devel gtest-devel which python36 dos2unix
# symlink up to date versions of python & cmake to 'default' names
ln -s /usr/bin/python36 /usr/bin/python3
mv /bin/cmake /bin/.cmake.old
ln -s /bin/cmake3 /bin/cmake
;;
'opensuse'|'opensuse-tumbleweed')
zypper --non-interactive refresh
zypper --non-interactive install gcc-c++ clang cmake make ccache libexpat-devel zlib-devel libssh-devel libcurl-devel gtest which dos2unix libxml2-tools
;;
*)
echo "Sorry, no predefined dependencies for your distribution $distro_id exist yet"
exit 1
;;
esac