|
Packit |
01d647 |
#!/bin/sh -e
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
# Debian & derivatives don't provide binary packages of googletest
|
|
Packit |
01d647 |
# => have to build them ourselves
|
|
Packit |
01d647 |
#
|
|
Packit |
01d647 |
# This script builds a shared library of googletest (not googlemock!) inside
|
|
Packit |
01d647 |
# gtest_build and copies it to /usr/lib/
|
|
Packit |
01d647 |
debian_build_gtest() {
|
|
Packit |
01d647 |
[ -d gtest_build ] || mkdir gtest_build
|
|
Packit |
01d647 |
cd gtest_build
|
|
Packit |
01d647 |
cmake -DBUILD_SHARED_LIBS=1 /usr/src/googletest/googletest
|
|
Packit |
01d647 |
make
|
|
Packit |
01d647 |
cp libgtest* /usr/lib/
|
|
Packit |
01d647 |
cd ..
|
|
Packit |
01d647 |
}
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
# workaround for really bare-bones Archlinux containers:
|
|
Packit |
01d647 |
if [ -x "$(command -v pacman)" ]; then
|
|
Packit |
01d647 |
pacman --noconfirm -Sy
|
|
Packit |
01d647 |
pacman --noconfirm -S grep gawk sed
|
|
Packit |
01d647 |
fi
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
distro_id=$(grep '^ID=' /etc/os-release|awk -F = '{print $2}'|sed 's/\"//g')
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
case "$distro_id" in
|
|
Packit |
01d647 |
'fedora')
|
|
Packit |
01d647 |
dnf -y --refresh install gcc-c++ clang cmake make ccache expat-devel zlib-devel libssh-devel libcurl-devel gtest-devel which dos2unix
|
|
Packit |
01d647 |
;;
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
'debian')
|
|
Packit |
01d647 |
apt-get update
|
|
Packit |
01d647 |
apt-get install -y cmake g++ clang make ccache python3 libexpat1-dev zlib1g-dev libssh-dev libcurl4-openssl-dev libgtest-dev libxml2-utils
|
|
Packit |
01d647 |
debian_build_gtest
|
|
Packit |
01d647 |
;;
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
'arch')
|
|
Packit |
01d647 |
pacman --noconfirm -Syu
|
|
Packit |
01d647 |
pacman --noconfirm -S gcc clang cmake make ccache expat zlib libssh curl gtest python dos2unix which diffutils
|
|
Packit |
01d647 |
;;
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
'ubuntu')
|
|
Packit |
01d647 |
apt-get update
|
|
Packit |
01d647 |
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
|
|
Packit |
01d647 |
debian_build_gtest
|
|
Packit |
01d647 |
;;
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
'centos'|'rhel')
|
|
Packit |
01d647 |
yum -y install epel-release
|
|
Packit |
01d647 |
# enable copr for gtest
|
|
Packit |
01d647 |
curl https://copr.fedorainfracloud.org/coprs/defolos/devel/repo/epel-7/defolos-devel-epel-7.repo > /etc/yum.repos.d/_copr_defolos-devel.repo
|
|
Packit |
01d647 |
yum clean all
|
|
Packit |
01d647 |
yum -y install gcc-c++ clang cmake3 make ccache expat-devel zlib-devel libssh-devel libcurl-devel gtest-devel which python36 dos2unix
|
|
Packit |
01d647 |
# symlink up to date versions of python & cmake to 'default' names
|
|
Packit |
01d647 |
if [ ! -e /usr/bin/python3 ]; then
|
|
Packit |
01d647 |
ln -s /usr/bin/python36 /usr/bin/python3
|
|
Packit |
01d647 |
elif [ -L /usr/bin/python3 ]; then
|
|
Packit |
01d647 |
rm /usr/bin/python3
|
|
Packit |
01d647 |
ln -s /usr/bin/python36 /usr/bin/python3
|
|
Packit |
01d647 |
fi
|
|
Packit |
01d647 |
mv /bin/cmake /bin/.cmake.old
|
|
Packit |
01d647 |
ln -s /bin/cmake3 /bin/cmake
|
|
Packit |
01d647 |
;;
|
|
Packit |
01d647 |
|
|
Packit |
01d647 |
'opensuse'|'opensuse-tumbleweed')
|
|
Packit |
01d647 |
zypper --non-interactive refresh
|
|
Packit |
01d647 |
zypper --non-interactive install gcc-c++ clang cmake make ccache libexpat-devel zlib-devel libssh-devel libcurl-devel gtest which dos2unix libxml2-tools
|
|
Packit |
01d647 |
;;
|
|
Packit |
01d647 |
*)
|
|
Packit |
01d647 |
echo "Sorry, no predefined dependencies for your distribution $distro_id exist yet"
|
|
Packit |
01d647 |
exit 1
|
|
Packit |
01d647 |
;;
|
|
Packit |
01d647 |
esac
|