Skip to content

Conversation

@deepin-ci-robot
Copy link
Contributor

Synchronize source files from linuxdeepin/dtklog.

Source-pull-request: linuxdeepin/dtklog#25

Synchronize source files from linuxdeepin/dtklog.

Source-pull-request: linuxdeepin/dtklog#25
@deepin-ci-robot
Copy link
Contributor Author

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: deepin-ci-robot

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@deepin-ci-robot
Copy link
Contributor Author

deepin pr auto review

我来对这个 CMakeLists.txt 的修改进行详细审查:

  1. 版本管理改进:
- FILE (READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" DTK_FILE_VERSION)
- STRING (STRIP "${DTK_FILE_VERSION}" DTK_FILE_VERSION)
- SET (DLOG_VERSION "${DTK_FILE_VERSION}" CACHE STRING "define project version")
+ FILE (READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" FILE_VERSION)
+ STRING (STRIP "${FILE_VERSION}" FILE_VERSION)

优点:

  • 变量命名更清晰,移除了重复的 DTK 前缀
  • 简化了版本设置逻辑
  1. 项目配置改进:
- PROJECT(${DLog}
-  VERSION ${DLOG_VERSION}
+ PROJECT(DtkLog
+  VERSION ${FILE_VERSION}
   DESCRIPTION "Simple, convinient and thread safe logger for Qt-based C++ apps"
+  HOMEPAGE_URL "https://github.com/linuxdeepin/dtklog"
   LANGUAGES CXX
 )

优点:

  • 添加了项目主页 URL
  • 使用固定的项目名称 DtkLog 而不是变量
  1. DTK 版本控制改进:
+option(DTK5 "Build DTK5." ON)
+if(DTK5)
+    set(DTK_VERSION_MAJOR "5")
+    set(DTK_NAME_SUFFIX "")
+else()
+    set(DTK_VERSION_MAJOR "6")
+    set(DTK_NAME_SUFFIX "6")
+endif()

优点:

  • 使用 option 更清晰地控制 DTK 版本
  • 引入 DTK_NAME_SUFFIX 变量处理命名差异
  1. 版本号处理改进:
+set(DTK_VERSION_MINOR ${PROJECT_VERSION_MINOR})
+set(DTK_VERSION_PATCH ${PROJECT_VERSION_PATCH})
+set(DTK_VERSION "0.${DTK_VERSION_MINOR}.${DTK_VERSION_PATCH}")

优点:

  • 更好的版本号管理
  • 符合 DTK 库 ABI 兼容性要求
  1. 库目标属性改进:
SET_TARGET_PROPERTIES(${library_target} PROPERTIES
-  VERSION ${CMAKE_PROJECT_VERSION}
-  SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR}
+  VERSION ${DTK_VERSION}
+  SOVERSION "0"
   EXPORT_NAME Log
)

优点:

  • 使用统一的 DTK_VERSION
  • SOVERSION 固定为 "0",符合 ABI 兼容性要求
  1. 配置文件更新:
    优点:
  • 所有配置文件(.pc、.pri、.cmake)都统一使用新的变量命名
  • 添加了 Qt 依赖要求

改进建议:

  1. 安全性:
  • 建议添加版本文件的校验,确保 VERSION 文件存在且格式正确
  • 可以添加版本号格式验证
  1. 性能:
  • 当前版本处理逻辑已经很高效,无需改进
  1. 可维护性:
  • 建议添加更详细的注释说明版本号规则
  • 可以考虑添加版本号兼容性检查
  1. 错误处理:
# 建议添加版本文件检查
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION")
    message(FATAL_ERROR "VERSION file not found")
endif()
  1. 文档:
  • 建议在 CMakeLists.txt 开头添加注释说明项目的版本控制策略

总体来说,这次修改提高了代码的可维护性和一致性,特别是在版本管理和命名规范方面做得很好。建议主要在错误处理和文档方面进行补充。

@github-actions
Copy link
Contributor

github-actions bot commented Jan 6, 2026

  • 敏感词检查失败, 检测到1个文件存在敏感词
详情
{
    "CMakeLists.txt": [
        {
            "line": "  HOMEPAGE_URL \"https://github.com/linuxdeepin/dtklog\"",
            "line_number": 13,
            "rule": "S35",
            "reason": "Url link | 6fabe13a51"
        }
    ]
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants