blob: 397d8609ba114f230349b5dce5d2e1110398d195 [file] [log] [blame]
#!/bin/bash
# This script needs to be run with root rights.
if [ $UID -ne 0 ]; then
sudo $0
exit 0
fi
function printNotSupportedMessageAndExit() {
echo
echo "Currently this script only works for distributions supporting apt-get."
echo "Please add support for your distribution."
echo
exit 1
}
function checkCmakeVersion() {
CMAKE_VERSION=`cmake --version`
VERSION=`echo "$CMAKE_VERSION" | awk '{split($3,num,".");
if (!(num[1]>2 || num[2]>8 || num[3]>=10))
printf $3}'`
if [ -n "${VERSION}" ]; then
echo "Warning: CMake version detected (${VERSION}) is lower then 2.8.10."
echo " This will probably cause errors, as older version didn't support CMAKE_NINJA_FORCE_RESPONSE_FILE,"
echo " which is needed now for building. (look at: https://lists.webkit.org/pipermail/webkit-gtk/2014-March/001809.html )"
echo ""
if [ -f "/etc/issue" ]; then
ubuntu_version=`cat /etc/issue`
if [[ $ubuntu_version == *Ubuntu\ 12.04* ]]; then
echo " For Ubuntu 12.04 or 12.10 You might consider adding ppa from https://launchpad.net/~kalakris/+archive/ubuntu/cmake"
fi
fi
fi
}
function checkInstaller {
# apt-get - Debian based distributions
apt-get --version &> /dev/null
if [ $? -eq 0 ]; then
installDependenciesWithApt
checkCmakeVersion;
exit 0
fi
printNotSupportedMessageAndExit
}
# If the package $1 is available, prints it. Otherwise prints $2.
# Useful for handling when a package is renamed on new versions of Debian/Ubuntu.
function aptIfElse {
if apt-cache show $1 &>/dev/null; then
echo $1
else
echo $2
fi
}
function installDependenciesWithApt {
# These are dependencies necessary for building WebKitEFL.
apt-get install \
bison \
cmake \
doxygen \
flex \
g++ \
gperf \
gtk-doc-tools \
libatk1.0-dev \
libdbus-1-dev \
libedit-dev \
libenchant-dev \
libespeak-dev \
libfaad-dev \
libffi-dev \
libfreetype6-dev \
libgcrypt11-dev \
$(aptIfElse libgeoclue-2-dev libgeoclue-dev) \
libgif-dev \
libgl1-mesa-dev \
libgnutls28-dev \
libgpg-error-dev \
libhyphen-dev \
libicu-dev \
libjpeg-dev \
libjson-glib-dev \
liblua5.1-0-dev \
libluajit-5.1-dev \
libmpg123-dev \
liborc-0.4-dev \
libosmesa6-dev \
libp11-kit-dev \
$(aptIfElse libpng-dev libpng12-dev) \
libpoppler-cpp-dev \
libpulse-dev \
libraw-dev \
librsvg2-dev \
libspectre-dev \
libsqlite3-dev \
libssl-dev \
libtheora-dev \
libtiff5-dev \
libudev-dev \
libvorbis-dev \
libwebp-dev \
libxcomposite-dev \
libxcursor-dev \
libxinerama-dev \
libxrandr-dev \
libxrender-dev \
libxss-dev \
libxt-dev \
libxtst-dev \
ninja-build \
ragel \
ruby \
subversion \
x11proto-print-dev
# These are dependencies necessary for building WebKitEFL and not available on ARM64.
apt-get install \
luajit
# These are dependencies necessary for running tests.
apt-get install \
apache2 \
$(aptIfElse libapache2-mod-php7.0 libapache2-mod-php5) \
libruby \
xvfb
}
checkInstaller