mirror of
https://github.com/qTox/qTox.git
synced 2024-03-22 14:00:36 +08:00
191 lines
4.6 KiB
Bash
Executable File
191 lines
4.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright © 2019 by The qTox Project Contributors
|
|
#
|
|
# This file is part of qTox, a Qt-based graphical interface for Tox.
|
|
# qTox is libre software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# qTox is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with qTox. If not, see <http://www.gnu.org/licenses/>
|
|
|
|
|
|
set -eu -o pipefail
|
|
|
|
apt_install() {
|
|
local apt_packages=(
|
|
automake
|
|
autotools-dev
|
|
build-essential
|
|
check
|
|
checkinstall
|
|
cmake
|
|
git
|
|
libavdevice-dev
|
|
libexif-dev
|
|
libgdk-pixbuf2.0-dev
|
|
libgtk2.0-dev
|
|
libopenal-dev
|
|
libopus-dev
|
|
libqrencode-dev
|
|
libqt5opengl5-dev
|
|
libqt5svg5-dev
|
|
libsodium-dev
|
|
libtool
|
|
libvpx-dev
|
|
libxss-dev
|
|
qrencode
|
|
qt5-default
|
|
qttools5-dev
|
|
qttools5-dev-tools
|
|
libsqlcipher-dev
|
|
)
|
|
|
|
sudo apt-get install "${apt_packages[@]}"
|
|
}
|
|
|
|
pacman_install() {
|
|
local pacman_packages=(
|
|
base-devel
|
|
git
|
|
libsodium
|
|
libvpx
|
|
libxss
|
|
openal
|
|
opus
|
|
qrencode
|
|
qt5
|
|
sqlcipher
|
|
)
|
|
sudo pacman -S --needed "${pacman_packages[@]}"
|
|
}
|
|
|
|
dnf_install() {
|
|
local dnf_group_packages=(
|
|
'Development Tools'
|
|
'C Development Tools and Libraries'
|
|
)
|
|
sudo dnf group install "${dnf_group_packages[@]}"
|
|
|
|
# pure Fedora doesn't have what it takes to compile qTox (ffmpeg)
|
|
local fedora_version=$(rpm -E %fedora)
|
|
local dnf_rpmfusion_package=(
|
|
http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$fedora_version.noarch.rpm
|
|
)
|
|
sudo dnf install "$dnf_rpmfusion_package"
|
|
|
|
local dnf_packages=(
|
|
ffmpeg-devel
|
|
gdk-pixbuf2-devel
|
|
git
|
|
glib2-devel
|
|
gtk2-devel
|
|
kf5-sonnet-devel
|
|
libconfig-devel
|
|
libexif-devel
|
|
libsodium-devel
|
|
libvpx-devel
|
|
libXScrnSaver-devel
|
|
openal-soft-devel
|
|
openssl-devel
|
|
opus-devel
|
|
qrencode-devel
|
|
qt5-devel
|
|
qt5-qtdoc
|
|
qt5-qtsvg
|
|
qt5-qtsvg-devel
|
|
qt5-qttools-devel
|
|
qtsingleapplication-qt5
|
|
readline-devel
|
|
sqlcipher-devel
|
|
sqlite-devel
|
|
)
|
|
sudo dnf install "${dnf_packages[@]}"
|
|
}
|
|
|
|
# Fedora by default doesn't include libs in /usr/local/lib so add it
|
|
fedora_locallib() {
|
|
local llib_file="/etc/ld.so.conf.d/locallib.conf"
|
|
local llib_lines=("/usr/local/lib/" "/usr/local/lib64/")
|
|
|
|
# check whether needed line already exists
|
|
is_locallib() {
|
|
grep -q "^$1\$" "$llib_file"
|
|
}
|
|
|
|
# add each line only if it doesn't exist
|
|
for llib_line in "${llib_lines[@]}"; do\
|
|
is_locallib "$llib_line" \
|
|
|| echo "$llib_line" \
|
|
| sudo tee -a "$llib_file";
|
|
done
|
|
}
|
|
|
|
zypper_install() {
|
|
local zypper_packages=(
|
|
+pattern:devel_basis
|
|
cmake
|
|
git
|
|
libavcodec-devel
|
|
libavdevice-devel
|
|
libopus-devel
|
|
libexif-devel
|
|
libQt5Concurrent-devel
|
|
libqt5-linguist
|
|
libqt5-linguist-devel
|
|
libQt5Network-devel
|
|
libQt5OpenGL-devel
|
|
libqt5-qtbase-common-devel
|
|
libqt5-qtsvg-devel
|
|
libQt5Test-devel
|
|
libQt5Xml-devel
|
|
libsodium-devel
|
|
libvpx-devel
|
|
libXScrnSaver-devel
|
|
openal-soft-devel
|
|
qrencode-devel
|
|
sqlcipher-devel
|
|
)
|
|
|
|
# if not sudo is installed, e.g. in docker image, install it
|
|
command -v sudo || zypper in sudo
|
|
|
|
sudo zypper in "${zypper_packages[@]}"
|
|
}
|
|
|
|
main() {
|
|
local BOOTSTRAP_ARGS=""
|
|
if command -v zypper && [ -f /etc/products.d/openSUSE.prod ]
|
|
then
|
|
zypper_install
|
|
elif command -v apt-get
|
|
then
|
|
apt_install
|
|
elif command -v pacman
|
|
then
|
|
pacman_install
|
|
elif command -v dnf
|
|
then
|
|
dnf_install
|
|
fedora_locallib
|
|
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH-}:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig"
|
|
BOOTSTRAP_ARGS="--without-sqlcipher"
|
|
else
|
|
echo "Unknown package manager, attempting to compile anyways"
|
|
fi
|
|
|
|
./bootstrap.sh ${BOOTSTRAP_ARGS}
|
|
mkdir -p _build
|
|
cd _build
|
|
cmake ../
|
|
make -j$(nproc)
|
|
}
|
|
main
|