From 5d1bea91e684e8c47c21337c50a8d7b7e5fa2628 Mon Sep 17 00:00:00 2001
From: Amin Bandali <amin.bandali@savoirfairelinux.com>
Date: Thu, 2 Jun 2022 09:42:08 -0400
Subject: [PATCH] build: Adapt (on GNU/Linux) to client-qt vendoring
 libjamiclient.

This patch targets GNU/Linux; macOS and Windows to be handled later.

Change-Id: I20581f8c1c345b087b117ce4441cb145b6e6e01d
---
 build.py           |  9 +++++----
 scripts/install.sh | 43 +++++++++++++++++++++++--------------------
 2 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/build.py b/build.py
index ca2d51e0..ff0ed626 100755
--- a/build.py
+++ b/build.py
@@ -532,14 +532,16 @@ def run_clean():
 
 
 def run_run(args):
-    if args.distribution == OSX_DISTRIBUTION_NAME:
+    if args.distribution == OSX_DISTRIBUTION_NAME and args.qt is None:
         subprocess.Popen(
             ["install/client-macosx/Ring.app/Contents/MacOS/Ring"])
         return True
 
     run_env = os.environ
-    run_env['LD_LIBRARY_PATH'] = run_env.get(
-        'LD_LIBRARY_PATH', '') + ":install/lrc/lib"
+    if args.gnome or (args.distribution == OSX_DISTRIBUTION_NAME \
+                     and args.qt is None):
+        run_env['LD_LIBRARY_PATH'] = run_env.get(
+            'LD_LIBRARY_PATH', '') + ":install/lrc/lib"
 
     try:
         jamid_log = open("daemon.log", 'a')
@@ -718,7 +720,6 @@ def parse_args():
     ap.add_argument('--no-priv-install', dest='priv_install',
                     default=True, action='store_false')
     ap.add_argument('--gnome', default=False, action='store_true')
-    ap.add_argument('--macos', default=False, action='store_true')
     ap.add_argument('--qt', nargs='?', const='', type=str,
                     help='Build the Qt client with the Qt path supplied')
     ap.add_argument('--no-libwrap', dest='no_libwrap',
diff --git a/scripts/install.sh b/scripts/install.sh
index 2f5bb251..d75ea6c5 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -151,25 +151,27 @@ if [ "${client}" = "client-qt" ] && [ -z "$qtpath" ]; then
     fi
 fi
 
-# libringclient
-cd "${TOP}/lrc"
-mkdir -p "${BUILDDIR}"
-cd "${BUILDDIR}"
-# Compute LRC CMake flags
-lrc_cmake_flags=(-DCMAKE_PREFIX_PATH="${qtpath}"
-                 -DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
-                 -DENABLE_LIBWRAP="${enable_libwrap}"
-                 $static)
-if [ "${global}" = "true" ]; then
-    lrc_cmake_flags+=(${prefix:+"-DCMAKE_INSTALL_PREFIX=$prefix"})
-else
-    lrc_cmake_flags+=(-DCMAKE_INSTALL_PREFIX="${INSTALL}/lrc"
-                      -DRING_BUILD_DIR="${DAEMON}/src")
+# libringclient (only if not client-qt)
+if [ "${client}" != "client-qt" ]; then
+    cd "${TOP}/lrc"
+    mkdir -p "${BUILDDIR}"
+    cd "${BUILDDIR}"
+    # Compute LRC CMake flags
+    lrc_cmake_flags=(-DCMAKE_PREFIX_PATH="${qtpath}"
+                     -DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
+                     -DENABLE_LIBWRAP="${enable_libwrap}"
+                     $static)
+    if [ "${global}" = "true" ]; then
+        lrc_cmake_flags+=(${prefix:+"-DCMAKE_INSTALL_PREFIX=$prefix"})
+    else
+        lrc_cmake_flags+=(-DCMAKE_INSTALL_PREFIX="${INSTALL}/lrc"
+                          -DRING_BUILD_DIR="${DAEMON}/src")
+    fi
+    echo "info: Configuring LRC with flags: ${lrc_cmake_flags[*]}"
+    cmake .. "${lrc_cmake_flags[@]}"
+    make -j"${proc}" V=1
+    make_install "${global}" "${priv_install}"
 fi
-echo "info: Configuring LRC with flags: ${lrc_cmake_flags[*]}"
-cmake .. "${lrc_cmake_flags[@]}"
-make -j"${proc}" V=1
-make_install "${global}" "${priv_install}"
 
 # client
 cd "${TOP}/${client}"
@@ -180,13 +182,14 @@ client_cmake_flags=(-DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
                     -DCMAKE_PREFIX_PATH="${qtpath}")
 
 if [ "${client}" = "client-qt" ]; then
-    client_cmake_flags+=(-DWITH_WEBENGINE="${enable_webengine}")
+    client_cmake_flags+=(-DENABLE_LIBWRAP="${enable_libwrap}"
+                         -DWITH_WEBENGINE="${enable_webengine}")
     if [ "${global}" = "true" ]; then
         client_cmake_flags+=(${prefix:+"-DCMAKE_INSTALL_PREFIX=$prefix"}
                              $static)
     else
         client_cmake_flags+=(-DCMAKE_INSTALL_PREFIX="${INSTALL}/${client}"
-                             -DLRC="${INSTALL}/lrc")
+                             -DLIBJAMI_BUILD_DIR="${DAEMON}/src")
     fi
 else
     # Compute GNOME client CMake flags.
-- 
GitLab