Skip to content

Commit

Permalink
fix(CPack): 修复了 CPack 问题
Browse files Browse the repository at this point in the history
  • Loading branch information
cathaysia committed Aug 10, 2021
1 parent 0774cd3 commit f8c6295
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 30 deletions.
38 changes: 27 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,30 +1,46 @@
cmake_minimum_required(VERSION 3.0)

project(digikamflowplugin
VERSION 0.0.9
DESCRIPTION "a plugin add a Flow View to digikam"
HOMEPAGE_URL https://github.com/cathaysia/digikamflowplugin)
project(
digikamflowplugin
VERSION 0.1.0
DESCRIPTION "a plugin add a Flow View to digikam"
HOMEPAGE_URL https://github.com/cathaysia/digikamflowplugin
)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# CMAKE_PREFIX_PATH 不应当被改变,但是这里不做强制要求
option(CMAKE_INSTALL_PREFIX "/usr/")

list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
include(FeatureSummary)
include(CMakePrintHelpers)


add_subdirectory(extern/QtFlowLayout)
include_directories(extern/QtFlowLayout)
add_subdirectory(src)

include(InstallRequiredSystemLibraries)
# set(CPACK_PACKAGE_VENDOR Z)
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE)
set(CPACK_GENERATOR "TGZ;TXZ;STGZ;RPM")
set(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_BINARY_DIR}" "${CMAKE_PROJECT_NAME}" ALL .)
set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/pack")

set(CPACK_PACKAGE_VENDOR "cathaysia")
set(CPCK_PACKAGE_DESCRIPTION_SUMMARY "${CMAKE_PROJECT_DESCRIPTION}")
set(CPACK_PROJECT_URL "${CMAKE_PROJECT_HOMEPAGE_URL}")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR}/pack)

set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CMAKE_PACKAGE_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr/")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_STRIP_FILES ON)
# RPM
set(CPACK_RPM_PACKAGE_LICENSE "GPLv3")
set(CPACK_RPM_PACKAGE_URL ${CPACK_PROJECT_URL})
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CMAKE_PROJECT_DESCRIPTION})
# set(CPACK_RPM_PACKAGE_REQUIRES "digikam,spdlog,qt5-qtbase")

include(CPack)
set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME})
cmake_print_variables(CPACK_PACKAGE_FILE_NAME)

feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
25 changes: 22 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,38 @@
# 说明

这是一个依赖于 Digikam 的插件,为 Digikam 添加了更加紧凑、美观的流式布局。

刚写这个软件的时候不是很清楚版本号的发行规范,因此早期版本有些问题,但是所幸今天(2021-08-10)迎来了 v0.1.0 版本,在上面的十个版本中我完成了软件的外观实现和性能优化,从部件布局一体化到部件布局分离,从单线程到读写线程分离,从双线程到多线程。

在 v0.0.8 中使用图片压缩大幅降低了大图片的内存将用,而且使用了多线程读图片大幅度提高了图片读取速度。

在 v0.0.9 版本中修复了小图片占用更多内存的问题。

v0.1.0 是一个比较简单的版本,只是修复了 CPack 的问题。

至此,此项目应该已经足够健壮了,除了一些在小问题外,日常使用应当问题不大。目前疑存的 Bug
是一个窗口停止会导致其他窗口停止加载图片,但是这个测试起来比较棘手,而且我日常使用感知不到,就暂时不管了。另外几个相关的 issues 是:

- 是否让多个窗口共用锁?
- 是否添加接口限制图片的最大读取数量?
- 是否添加自定义图片压缩的大小?
- 是否在双击图片时显示无损大图?

# 截图

![1.gif](screenshot/1.gif)
![缩放.gif](./screenshot/缩放.gif)
![节省内存.gif](./screenshot/节省内存.gif)


# 构建

此项目依赖于以下组件(Fedora):
此项目构建时依赖于以下组件(Fedora):

- spdlog-devel
- digikam-devel
- qt5-qtbase-devel
- c++ 17
- cmake
- CMake

要构建并安装,请执行以下指令:

Expand Down
28 changes: 12 additions & 16 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,14 @@ set_package_properties(
DESCRIPTION "digiKam core library"
)

add_library(
PicFlowView MODULE
PicFlowView.cpp
PicFlowView.cpp
)
add_library(PicFlowView MODULE PicFlowView.cpp)

set_target_properties(
PicFlowView
PROPERTIES PREFIX ""
LINK_WHAT_YOU_USE ON
)

target_include_directories(
PicFlowView PRIVATE
Digikam::digikamcore
Expand All @@ -47,17 +44,16 @@ target_link_libraries(
spdlog::spdlog
)

include(GNUInstallDirs)
find_file(
DIGIKAM_PLUGIN_CONFIG DigikamPluginConfig.cmake
HINTS ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/DigikamPlugin/
HINTS /usr/lib64/cmake/DigikamPlugin/
HINTS /usr/lib/cmake/DigikamPlugin/
)
include(${DIGIKAM_PLUGIN_CONFIG})
cmake_print_variables(DPluginGenericInstallPath)
# find_file(
# DIGIKAM_PLUGIN_CONFIG DigikamPluginConfig.cmake
# HINTS ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/DigikamPlugin/
# HINTS /usr/lib64/cmake/DigikamPlugin/
# HINTS /usr/lib/cmake/DigikamPlugin/
# )
# include(${DIGIKAM_PLUGIN_CONFIG})
# cmake_print_variables(DPluginGenericInstallPath)
# 这里需要使用相对路径,否则 CPack 不识别
install(
TARGETS PicFlowView
LIBRARY DESTINATION "${DPluginGenericInstallPath}"
# TARGETS PicFlowView DESTINATION "${DPluginGenericInstallPath}"
TARGETS PicFlowView DESTINATION "lib64/qt5/plugins/digikam/generic/"
)

0 comments on commit f8c6295

Please sign in to comment.