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
Date: Mon, 8 Jan 2024 16:07:05 -0500
Subject: [PATCH] build: Allow using system-provided md4c and tidy libraries.
* CMakeLists.txt : Search for libraries in the system
first, falling back to bundled copies in case they aren't found.
Series-to: jami@gnu.org
Fixes:
Change-Id: I637959fefce6a21b0ee73a793acb6c3c42dcdce0
---
CMakeLists.txt | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 38e7a4e2..3f1bd599 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -545,19 +545,33 @@ add_subdirectory(3rdparty/SortFilterProxyModel)
set(SFPM_OBJECTS $)
# md4c
-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_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