Pārlūkot izejas kodu

auto configure project info

xuqiang 4 mēneši atpakaļ
vecāks
revīzija
cb43de3284
3 mainītis faili ar 37 papildinājumiem un 1 dzēšanām
  1. 2 1
      .gitignore
  2. 23 0
      CMakeLists.txt
  3. 12 0
      include/version.h.in

+ 2 - 1
.gitignore

@@ -1,2 +1,3 @@
 .vscode
-build
+build
+include/version.h

+ 23 - 0
CMakeLists.txt

@@ -42,6 +42,29 @@ set(CMAKE_PREFIX_PATH
     ${QT5_DIR}/lib/cmake
 )
 
+# 获取 Git 信息(可选)
+execute_process(
+    COMMAND git rev-parse --short=10 HEAD
+    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+    OUTPUT_VARIABLE GIT_COMMIT_HASH
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+execute_process(
+    COMMAND git rev-parse --abbrev-ref HEAD
+    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+    OUTPUT_VARIABLE GIT_BRANCH
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
+string(TIMESTAMP BUILD_TIME "%Y-%m-%d %H:%M:%S")
+
+# 将变量写入 version.h
+configure_file(
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/version.h.in
+    ${CMAKE_CURRENT_SOURCE_DIR}/include/version.h
+    @ONLY
+)
+
 find_package(Qt5 REQUIRED COMPONENTS Widgets UiPlugin Network SerialPort)
 
 set(PROJECT_SOURCE_DIR_LIST

+ 12 - 0
include/version.h.in

@@ -0,0 +1,12 @@
+#pragma once
+
+#define PROJECT_NAME            "@PROJECT_NAME@"
+#define PROJECT_VERSION         "@PROJECT_VERSION@"
+#define PROJECT_VERSION_MAJOR   @PROJECT_VERSION_MAJOR@
+#define PROJECT_VERSION_MINOR   @PROJECT_VERSION_MINOR@
+#define PROJECT_VERSION_PATCH   @PROJECT_VERSION_PATCH@
+
+/* 如果要 Git 信息,可加以下内容 */
+#define PROJECT_GIT_HASH        "@GIT_COMMIT_HASH@"
+#define PROJECT_GIT_BRANCH      "@GIT_BRANCH@"
+#define PROJECT_BUILD_TIME      "@BUILD_TIME@"