aboutsummaryrefslogtreecommitdiff
Forwarded here: https://lists.gnu.org/archive/html/jami/2024-01/msg00007.html

From a302dc0a0faf2778331745a1d01bc3071e182d4d Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Mon, 8 Jan 2024 16:07:05 -0500
Subject: [PATCH] build: Allow using system-provided md4c and tidy libraries.

* CMakeLists.txt <md4c, tidy>: Search for libraries in the system
first, falling back to bundled copies in case they aren't found.

Series-to: jami@gnu.org
Fixes: <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1506>
Change-Id: I637959fefce6a21b0ee73a793acb6c3c42dcdce0
---
 CMakeLists.txt | 36 +++++++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 11 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e802357f..6d2dccfb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -600,20 +600,34 @@ add_subdirectory(3rdparty/SortFilterProxyModel)
 set(SFPM_OBJECTS $<TARGET_OBJECTS:SortFilterProxyModel>)
 
 # md4c
-set(BUILD_MD2HTML_EXECUTABLE OFF CACHE BOOL "Don't build md2html executable" FORCE)
-set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE)
-add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL)
-list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src)
-list(APPEND CLIENT_INCLUDE_DIRS ${MD4C_SOURCE_DIR}/src)
-list(APPEND CLIENT_LIBS md4c-html)
+find_package(md4c)
+if(md4c_FOUND)
+  message(STATUS "Using system-provided md4c-html")
+  list(APPEND CLIENT_LIBS md4c::md4c-html)
+else()
+  message("Using bundled md4c-html library")
+  set(BUILD_MD2HTML_EXECUTABLE OFF CACHE BOOL "Don't build md2html executable" FORCE)
+  set(BUILD_SHARED_LIBS OFF CACHE BOOL "Don't build shared md4c library" FORCE)
+  add_subdirectory(3rdparty/md4c EXCLUDE_FROM_ALL)
+  list(APPEND CLIENT_LINK_DIRS ${MD4C_BINARY_DIR}/src)
+  list(APPEND CLIENT_INCLUDE_DIRS ${MD4C_SOURCE_DIR}/src)
+  list(APPEND CLIENT_LIBS md4c-html)
+endif()
 
 # tidy-html5
-set(BUILD_SHARED_LIB OFF CACHE BOOL "Don't build shared tidy library" FORCE)
-set(SUPPORT_CONSOLE_APP OFF CACHE BOOL "Don't build tidy console app" FORCE)
-add_subdirectory(3rdparty/tidy-html5 EXCLUDE_FROM_ALL)
-list(APPEND CLIENT_LINK_DIRS ${tidy_BINARY_DIR}/Release)
-list(APPEND CLIENT_INCLUDE_DIRS ${tidy_SOURCE_DIR}/include)
-list(APPEND CLIENT_LIBS tidy-static)
+pkg_check_modules(tidy IMPORTED_TARGET tidy)
+if(tidy_FOUND)
+  message(STATUS "Using system-provided tidy")
+  list(APPEND CLIENT_LIBS PkgConfig::tidy)
+else()
+  message("Using bundled tidy library")
+  set(BUILD_SHARED_LIB OFF CACHE BOOL "Don't build shared tidy library" FORCE)
+  set(SUPPORT_CONSOLE_APP OFF CACHE BOOL "Don't build tidy console app" FORCE)
+  add_subdirectory(3rdparty/tidy-html5 EXCLUDE_FROM_ALL)
+  list(APPEND CLIENT_LINK_DIRS ${tidy_BINARY_DIR}/Release)
+  list(APPEND CLIENT_INCLUDE_DIRS ${tidy_SOURCE_DIR}/include)
+  list(APPEND CLIENT_LIBS tidy-static)
+endif()
 
 # common executable sources
 qt_add_executable(

base-commit: a4300308dc8d03d59f620bb5fed753df5cf31ed9
-- 
2.41.0