update
This commit is contained in:
@@ -1,11 +1,21 @@
|
||||
# 模块:domain、persistence、workspace、depth、animation(时间采样)
|
||||
set(CORE_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
option(LT_WITH_VIPS "Use libvips for GB-scale PNG/JPEG (libvips-dev / pkg-config vips)" ON)
|
||||
|
||||
set(CORE_SOURCES
|
||||
${CORE_ROOT}/domain/Project.cpp
|
||||
${CORE_ROOT}/image/ImageFileLoader.cpp
|
||||
${CORE_ROOT}/large_image/VipsBackend.cpp
|
||||
${CORE_ROOT}/workspace/ProjectWorkspace.cpp
|
||||
${CORE_ROOT}/persistence/PersistentBinaryObject.cpp
|
||||
${CORE_ROOT}/persistence/AnimationBinary.cpp
|
||||
${CORE_ROOT}/persistence/EntityPayloadBinary.cpp
|
||||
${CORE_ROOT}/persistence/JsonFileAtomic.cpp
|
||||
${CORE_ROOT}/persistence/EntityBundleStore.cpp
|
||||
${CORE_ROOT}/persistence/AnimationBundleStore.cpp
|
||||
${CORE_ROOT}/persistence/AsyncProjectWriter.cpp
|
||||
${CORE_ROOT}/animation/AnimationEvaluator.cpp
|
||||
${CORE_ROOT}/animation/AnimationSampling.cpp
|
||||
${CORE_ROOT}/depth/DepthService.cpp
|
||||
${CORE_ROOT}/net/ModelServerClient.cpp
|
||||
@@ -17,11 +27,20 @@ set(CORE_SOURCES
|
||||
)
|
||||
|
||||
set(CORE_HEADERS
|
||||
${CORE_ROOT}/image/ImageDecodeConfig.h
|
||||
${CORE_ROOT}/image/ImageFileLoader.h
|
||||
${CORE_ROOT}/large_image/VipsBackend.h
|
||||
${CORE_ROOT}/domain/EntityIntro.h
|
||||
${CORE_ROOT}/domain/Project.h
|
||||
${CORE_ROOT}/workspace/ProjectWorkspace.h
|
||||
${CORE_ROOT}/persistence/PersistentBinaryObject.h
|
||||
${CORE_ROOT}/persistence/AnimationBinary.h
|
||||
${CORE_ROOT}/persistence/EntityPayloadBinary.h
|
||||
${CORE_ROOT}/persistence/JsonFileAtomic.h
|
||||
${CORE_ROOT}/persistence/EntityBundleStore.h
|
||||
${CORE_ROOT}/persistence/AnimationBundleStore.h
|
||||
${CORE_ROOT}/persistence/AsyncProjectWriter.h
|
||||
${CORE_ROOT}/animation/AnimationEvaluator.h
|
||||
${CORE_ROOT}/animation/AnimationSampling.h
|
||||
${CORE_ROOT}/depth/DepthService.h
|
||||
${CORE_ROOT}/net/ModelServerClient.h
|
||||
@@ -47,4 +66,44 @@ target_link_libraries(core
|
||||
${QT_PACKAGE}::Core
|
||||
${QT_PACKAGE}::Gui
|
||||
${QT_PACKAGE}::Network
|
||||
${QT_PACKAGE}::Concurrent
|
||||
)
|
||||
|
||||
# libvips:优先 IMPORTED_TARGET;失败则用 pkg-config 变量(部分环境下更稳)
|
||||
set(LT_VIPS_ENABLED OFF)
|
||||
if(LT_WITH_VIPS)
|
||||
find_package(PkgConfig QUIET)
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(VIPS_PC IMPORTED_TARGET vips)
|
||||
if(TARGET PkgConfig::VIPS_PC)
|
||||
target_compile_definitions(core PRIVATE LT_HAVE_VIPS=1)
|
||||
target_link_libraries(core PUBLIC PkgConfig::VIPS_PC)
|
||||
set(LT_VIPS_ENABLED ON)
|
||||
message(STATUS "libvips: enabled via IMPORTED_TARGET (LT_HAVE_VIPS)")
|
||||
else()
|
||||
pkg_check_modules(VIPS_LEGACY QUIET vips)
|
||||
if(VIPS_LEGACY_FOUND)
|
||||
target_compile_definitions(core PRIVATE LT_HAVE_VIPS=1)
|
||||
target_include_directories(core PRIVATE ${VIPS_LEGACY_INCLUDE_DIRS})
|
||||
target_link_directories(core PUBLIC ${VIPS_LEGACY_LIBRARY_DIRS})
|
||||
target_link_libraries(core PUBLIC ${VIPS_LEGACY_LIBRARIES})
|
||||
if(VIPS_LEGACY_CFLAGS_OTHER)
|
||||
separate_arguments(_vips_cflags UNIX_COMMAND "${VIPS_LEGACY_CFLAGS_OTHER}")
|
||||
target_compile_options(core PRIVATE ${_vips_cflags})
|
||||
endif()
|
||||
set(LT_VIPS_ENABLED ON)
|
||||
message(STATUS "libvips: enabled via pkg-config variables (LT_HAVE_VIPS)")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if(LT_WITH_VIPS AND NOT LT_VIPS_ENABLED)
|
||||
message(
|
||||
WARNING
|
||||
"未找到 libvips(无 pkg-config 模块 vips),已关闭 LT_HAVE_VIPS,大图仍走 Qt 解码。\n"
|
||||
" Debian/Ubuntu: sudo apt install pkg-config libvips-dev\n"
|
||||
" Fedora: sudo dnf install pkgconf-pkg-config vips-devel\n"
|
||||
" 安装后终端执行: pkg-config --modversion vips (应打印版本号)\n"
|
||||
" 若已安装仍失败: export PKG_CONFIG_PATH=\"/usr/lib/x86_64-linux-gnu/pkgconfig:\$PKG_CONFIG_PATH\""
|
||||
)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user