From ae3b2a1c6188f6d32cdb041ad5bb84c7049b1cca Mon Sep 17 00:00:00 2001 From: Zhang Sheng Date: Thu, 26 Jun 2025 12:46:29 +0800 Subject: [PATCH 1/2] feat: enhance CMake configuration for libmagic dependency handling - Updated CMakeLists.txt to improve the handling of the libmagic dependency. - Added logic to first attempt to find libmagic using pkg-config, with a fallback to traditional methods for compatibility with older environments. - Introduced error handling to ensure a clear message if libmagic is not found. - Merged libmagic with other dependencies for streamlined configuration. Log: This enhancement ensures better compatibility and error handling for the libmagic library in the document parser's build process. --- CMakeLists.txt | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a56cffb..cf4eece 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,9 @@ include(GNUInstallDirs) # 查找依赖包 find_package(PkgConfig REQUIRED) -pkg_check_modules(DEPS REQUIRED + +# 首先尝试查找除libmagic之外的所有依赖 +pkg_check_modules(DEPS_WITHOUT_MAGIC REQUIRED poppler-cpp libzip pugixml @@ -22,9 +24,41 @@ pkg_check_modules(DEPS REQUIRED libxml-2.0 uuid tinyxml2 - libmagic ) +# 单独处理libmagic依赖,兼容新旧环境 +set(LIBMAGIC_FOUND FALSE) +set(LIBMAGIC_LIBRARIES "") +set(LIBMAGIC_INCLUDE_DIRS "") + +# 首先尝试使用pkg-config查找libmagic(新环境) +pkg_check_modules(LIBMAGIC_PKG libmagic) +if(LIBMAGIC_PKG_FOUND) + set(LIBMAGIC_FOUND TRUE) + set(LIBMAGIC_LIBRARIES ${LIBMAGIC_PKG_LIBRARIES}) + set(LIBMAGIC_INCLUDE_DIRS ${LIBMAGIC_PKG_INCLUDE_DIRS}) + message(STATUS "Found libmagic via pkg-config: ${LIBMAGIC_PKG_VERSION}") +else() + # 回退到传统方法(旧环境) + find_path(LIBMAGIC_INCLUDE_DIR magic.h) + find_library(LIBMAGIC_LIBRARY NAMES magic) + + if(LIBMAGIC_INCLUDE_DIR AND LIBMAGIC_LIBRARY) + set(LIBMAGIC_FOUND TRUE) + set(LIBMAGIC_LIBRARIES ${LIBMAGIC_LIBRARY}) + set(LIBMAGIC_INCLUDE_DIRS ${LIBMAGIC_INCLUDE_DIR}) + message(STATUS "Found libmagic via traditional method: ${LIBMAGIC_LIBRARY}") + endif() +endif() + +if(NOT LIBMAGIC_FOUND) + message(FATAL_ERROR "libmagic not found. Please install libmagic-dev package.") +endif() + +# 合并所有依赖 +set(DEPS_LIBRARIES ${DEPS_WITHOUT_MAGIC_LIBRARIES} ${LIBMAGIC_LIBRARIES}) +set(DEPS_INCLUDE_DIRS ${DEPS_WITHOUT_MAGIC_INCLUDE_DIRS} ${LIBMAGIC_INCLUDE_DIRS}) + # 添加子目录 add_subdirectory(src) From 5f25a6de052b2e288828425585d65dfd853d48ac Mon Sep 17 00:00:00 2001 From: Zhang Sheng Date: Thu, 26 Jun 2025 12:49:39 +0800 Subject: [PATCH 2/2] chore: bump versiton to 1.0.21 1.0.21 Log: --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 6091028..8a06f37 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +docparser (1.0.21) unstable; urgency=medium + + * enhance CMake configuration for libmagic dependency handling + + -- Zhang Sheng Thu, 26 Jun 2025 12:49:21 +0800 + docparser (1.0.20) unstable; urgency=medium * implement truncation functionality in document parser