Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 36 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,51 @@ include(GNUInstallDirs)

# 查找依赖包
find_package(PkgConfig REQUIRED)
pkg_check_modules(DEPS REQUIRED

# 首先尝试查找除libmagic之外的所有依赖
pkg_check_modules(DEPS_WITHOUT_MAGIC REQUIRED
poppler-cpp
libzip
pugixml
freetype2
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)

Expand Down
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
docparser (1.0.21) unstable; urgency=medium

* enhance CMake configuration for libmagic dependency handling

-- Zhang Sheng <zhangsheng@uniontech.com> Thu, 26 Jun 2025 12:49:21 +0800

docparser (1.0.20) unstable; urgency=medium

* implement truncation functionality in document parser
Expand Down
Loading