Skip to content
Snippets Groups Projects
Commit 8f4390ab authored by Albert  Babí Oller's avatar Albert Babí Oller
Browse files

packaging: client-qt build revision for linux

- use cmake to build client-qt (client's cmake includes global installation support)
- copy-runtime-files.py is no longer necessary since it is directly managed by cmake
- uninstall revision: use make uninstall rule for lrc, client-qt and client-gnome
- add doxygen and graphviz dependencies for building documentation

Change-Id: I3fb1d56cb80556337b2c10fda1a67f84c290158c
parent 49c538bc
No related branches found
No related tags found
No related merge requests found
...@@ -85,7 +85,7 @@ ZYPPER_INSTALL_SCRIPT = [ ...@@ -85,7 +85,7 @@ ZYPPER_INSTALL_SCRIPT = [
ZYPPER_DEPENDENCIES = [ ZYPPER_DEPENDENCIES = [
# build system # build system
'autoconf', 'autoconf-archive', 'automake', 'cmake', 'make', 'patch', 'gcc-c++', 'autoconf', 'autoconf-archive', 'automake', 'cmake', 'make', 'patch', 'gcc-c++',
'libtool', 'which', 'pandoc','nasm', 'libtool', 'which', 'pandoc','nasm', 'doxygen', 'graphviz',
# contrib dependencies # contrib dependencies
'curl', 'gzip', 'bzip2', 'curl', 'gzip', 'bzip2',
# daemon # daemon
...@@ -112,7 +112,7 @@ ZYPPER_CLIENT_QT_DEPENDENCIES = [ ...@@ -112,7 +112,7 @@ ZYPPER_CLIENT_QT_DEPENDENCIES = [
DNF_DEPENDENCIES = [ DNF_DEPENDENCIES = [
'autoconf', 'autoconf-archive', 'automake', 'cmake', 'make', 'speexdsp-devel', 'pulseaudio-libs-devel', 'autoconf', 'autoconf-archive', 'automake', 'cmake', 'make', 'speexdsp-devel', 'pulseaudio-libs-devel',
'libtool', 'dbus-devel', 'expat-devel', 'pcre-devel', 'libtool', 'dbus-devel', 'expat-devel', 'pcre-devel', 'doxygen', 'graphviz',
'yaml-cpp-devel', 'boost-devel', 'dbus-c++-devel', 'dbus-devel', 'yaml-cpp-devel', 'boost-devel', 'dbus-c++-devel', 'dbus-devel',
'libXext-devel', 'libXfixes-devel', 'yasm', 'libXext-devel', 'libXfixes-devel', 'yasm',
'speex-devel', 'chrpath', 'check', 'astyle', 'uuid-c++-devel', 'gettext-devel', 'speex-devel', 'chrpath', 'check', 'astyle', 'uuid-c++-devel', 'gettext-devel',
...@@ -135,8 +135,8 @@ DNF_CLIENT_QT_DEPENDENCIES = [ ...@@ -135,8 +135,8 @@ DNF_CLIENT_QT_DEPENDENCIES = [
] ]
APT_DEPENDENCIES = [ APT_DEPENDENCIES = [
'autoconf', 'autoconf-archive', 'autopoint', 'automake', 'cmake', 'make', 'dbus', 'doxygen', 'g++', 'autoconf', 'autoconf-archive', 'autopoint', 'automake', 'cmake', 'make', 'dbus', 'doxygen', 'graphviz',
'gettext', 'gnome-icon-theme-symbolic', 'libasound2-dev', 'libavcodec-dev', 'g++', 'gettext', 'gnome-icon-theme-symbolic', 'libasound2-dev', 'libavcodec-dev',
'libavdevice-dev', 'libavformat-dev', 'libboost-dev', 'libavdevice-dev', 'libavformat-dev', 'libboost-dev',
'libclutter-gtk-1.0-dev', 'libcppunit-dev', 'libdbus-1-dev', 'libclutter-gtk-1.0-dev', 'libcppunit-dev', 'libdbus-1-dev',
'libdbus-c++-dev', 'libebook1.2-dev', 'libexpat1-dev', 'libgnutls28-dev', 'libdbus-c++-dev', 'libebook1.2-dev', 'libexpat1-dev', 'libgnutls28-dev',
...@@ -163,8 +163,8 @@ APT_CLIENT_QT_DEPENDENCIES = [ ...@@ -163,8 +163,8 @@ APT_CLIENT_QT_DEPENDENCIES = [
] ]
PACMAN_DEPENDENCIES = [ PACMAN_DEPENDENCIES = [
'autoconf', 'autoconf-archive', 'gettext', 'cmake', 'dbus', 'doxygen', 'gcc', 'autoconf', 'autoconf-archive', 'gettext', 'cmake', 'dbus', 'doxygen', 'graphviz',
'ffmpeg', 'boost', 'cppunit', 'libdbus', 'dbus-c++', 'libe-book', 'expat', 'gcc', 'ffmpeg', 'boost', 'cppunit', 'libdbus', 'dbus-c++', 'libe-book', 'expat',
'jack', 'opus', 'pcre', 'libpulse', 'speex', 'speexdsp', 'libtool', 'yaml-cpp', 'jack', 'opus', 'pcre', 'libpulse', 'speex', 'speexdsp', 'libtool', 'yaml-cpp',
'qt5-base', 'swig', 'yasm', 'qrencode', 'make', 'patch', 'pkg-config', 'qt5-base', 'swig', 'yasm', 'qrencode', 'make', 'patch', 'pkg-config',
'automake', 'libva', 'libnm', 'libvdpau', 'openssl', 'pandoc', 'nasm' 'automake', 'libva', 'libnm', 'libvdpau', 'openssl', 'pandoc', 'nasm'
...@@ -201,27 +201,15 @@ IOS_DEPENDENCIES_UNLINK = [ ...@@ -201,27 +201,15 @@ IOS_DEPENDENCIES_UNLINK = [
'pkg-config*', 'gettext*', 'swiftlint*', 'swiftgen*', 'libtasn' 'pkg-config*', 'gettext*', 'swiftlint*', 'swiftgen*', 'libtasn'
] ]
UNINSTALL_SCRIPT = [ UNINSTALL_DAEMON_SCRIPT = [
'make -C daemon uninstall', 'make -C daemon uninstall'
'rm -rf ./lrc/build-global/',
'rm -rf ./lrc/build-local/',
'rm -rf ./client-gnome/build-global',
'rm -rf ./client-gnome/build-local',
'rm -rf ./client-qt/build-global',
'rm -rf ./client-qt/build-local',
] ]
OSX_UNINSTALL_SCRIPT = [ OSX_UNINSTALL_SCRIPT = [
'make -C daemon uninstall', 'make -C daemon uninstall',
'rm -rf install/client-macosx', 'rm -rf install/client-macosx'
]
STOP_SCRIPT = [
'xargs kill < daemon.pid',
'xargs kill < jami-gnome.pid',
] ]
def run_powersell_cmd(cmd): def run_powersell_cmd(cmd):
p = subprocess.Popen(["powershell.exe", cmd], stdout=sys.stdout) p = subprocess.Popen(["powershell.exe", cmd], stdout=sys.stdout)
p.communicate() p.communicate()
...@@ -417,8 +405,25 @@ def run_uninstall(args): ...@@ -417,8 +405,25 @@ def run_uninstall(args):
if args.distribution == OSX_DISTRIBUTION_NAME: if args.distribution == OSX_DISTRIBUTION_NAME:
execute_script(OSX_UNINSTALL_SCRIPT) execute_script(OSX_UNINSTALL_SCRIPT)
else: else:
execute_script(UNINSTALL_SCRIPT) execute_script(UNINSTALL_DAEMON_SCRIPT)
CLIENT_SUFFIX = 'qt' if (args.qt is not None) else 'gnome'
INSTALL_DIR = '/build-global' if args.global_install else '/build-local'
# Client needs to be uninstalled first
if (os.path.exists('./client-' + CLIENT_SUFFIX + INSTALL_DIR)):
UNINSTALL_CLIENT = [
'make -C client-' + CLIENT_SUFFIX + INSTALL_DIR + ' uninstall',
'rm -rf ./client-' + CLIENT_SUFFIX + INSTALL_DIR
]
execute_script(UNINSTALL_CLIENT)
if (os.path.exists('./lrc' + INSTALL_DIR)):
UNINSTALL_LRC = [
'make -C lrc' + INSTALL_DIR + ' uninstall',
'rm -rf ./lrc' + INSTALL_DIR
]
execute_script(UNINSTALL_LRC)
def run_run(args): def run_run(args):
if args.distribution == OSX_DISTRIBUTION_NAME: if args.distribution == OSX_DISTRIBUTION_NAME:
...@@ -459,7 +464,7 @@ def run_run(args): ...@@ -459,7 +464,7 @@ def run_run(args):
env=run_env env=run_env
) )
with open('jami-gnome.pid', 'w') as f: with open("jami-" + client_suffix + ".pid", 'w') as f:
f.write(str(client_process.pid)+'\n') f.write(str(client_process.pid)+'\n')
if args.debug: if args.debug:
...@@ -495,6 +500,11 @@ def run_run(args): ...@@ -495,6 +500,11 @@ def run_run(args):
def run_stop(args): def run_stop(args):
client_suffix = "qt" if (args.qt is not None) else "gnome"
STOP_SCRIPT = [
'xargs kill < daemon.pid',
'xargs kill < jami-' + client_suffix + '.pid'
]
execute_script(STOP_SCRIPT) execute_script(STOP_SCRIPT)
......
...@@ -167,40 +167,38 @@ cd "${TOP}/${client}" ...@@ -167,40 +167,38 @@ cd "${TOP}/${client}"
mkdir -p "${BUILDDIR}" mkdir -p "${BUILDDIR}"
cd "${BUILDDIR}" cd "${BUILDDIR}"
if [ "${client}" = "client-qt" ]; then if [ "${client}" = "client-qt" ]; then
if [ -z ${qt5path} ]; then if [ "${global}" = "true" ]; then
if command -v qmake &> /dev/null; then if [ "${prefix+set}" ]; then
echo "Build client-qt with $(qmake -v)" cmake .. -DQT5_VER="${qt5ver}" \
qmake PREFIX="${INSTALL}/${client}" .. -DQT5_PATH="${qt5path}" \
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
-DCMAKE_INSTALL_PREFIX="${prefix}" $static
else else
echo "Build client-qt with $(qmake-qt5 -v)" # Fedora cmake .. -DQT5_VER="${qt5ver}" \
qmake-qt5 PREFIX="${INSTALL}/${client}" .. -DQT5_PATH="${qt5path}" \
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" $static
fi fi
else else
echo "Build client-qt using Qt ${qt5path}" cmake .. -DQT5_VER="${qt5ver}" \
eval ${qt5path}/bin/qmake PREFIX="${INSTALL}/${client}" .. -DQT5_PATH="${qt5path}" \
-DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
-DCMAKE_INSTALL_PREFIX="${INSTALL}/${client}" \
-DLRC="${INSTALL}/lrc"
fi fi
else else
if [ "${global}" = "true" ]; then if [ "${global}" = "true" ]; then
if [ "${prefix+set}" ]; then if [ "${prefix+set}" ]; then
cmake .. -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" -DCMAKE_INSTALL_PREFIX="${prefix}" $static cmake .. -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
else -DCMAKE_INSTALL_PREFIX="${prefix}" $static
cmake .. -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" $static else
fi cmake .. -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" $static
fi
else else
cmake .. -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \ cmake .. -DCMAKE_PREFIX_PATH="${CMAKE_PREFIX_PATH}" \
-DCMAKE_INSTALL_PREFIX="${INSTALL}/${client}" \ -DCMAKE_INSTALL_PREFIX="${INSTALL}/${client}" \
-DRINGTONE_DIR="${INSTALL}/daemon/share/ring/ringtones" \ -DRINGTONE_DIR="${INSTALL}/daemon/share/ring/ringtones" \
-DLibRingClient_DIR="${INSTALL}/lrc/lib/cmake/LibRingClient" $static -DLibRingClient_DIR="${INSTALL}/lrc/lib/cmake/LibRingClient" $static
fi fi
fi fi
make -j"${proc}" make -j"${proc}"
make_install "${global}" "${priv_install}" make_install "${global}" "${priv_install}"
# copy runtime files
if [ ${client} = "client-qt" ]; then
if [ -z ${qt5path} ]; then
python ../copy-runtime-files.py
else
python ../copy-runtime-files.py -q ${qt5path}
fi
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment