使用CMake管理版本

This commit is contained in:
HEYAHONG 2023-01-10 10:43:39 +08:00
parent 4b708d016d
commit 5fae8622d3
No known key found for this signature in database
GPG Key ID: 45495019025D566D
4 changed files with 41 additions and 4 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
Version.h
build
*~
*.swp

View File

@ -2,9 +2,27 @@
cmake_minimum_required(VERSION 3.13)
#
Set(PROJECT_NAME SimpleBLETool)
#
set(PROJECT_MAJOR_VERSION_STR 1)
#
set(PROJECT_MINOR_VERSION_STR 0)
#
set(PROJECT_REVISION_VERSION_STR 0)
#
string(TIMESTAMP PROJECT_BUILD_TIME_SECOND "%s" UTC)
math(EXPR PROJECT_BUILD_VERSION_STR "${PROJECT_BUILD_TIME_SECOND}/60/60/24" OUTPUT_FORMAT DECIMAL)
#
set(PROJECT_VERSION_STR "${PROJECT_MAJOR_VERSION_STR}.${PROJECT_MINOR_VERSION_STR}.${PROJECT_REVISION_VERSION_STR}.${PROJECT_BUILD_VERSION_STR}")
message(STATUS "Version:${PROJECT_VERSION_STR}")
configure_file(Version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/Version.h)
if(WIN32)
configure_file(Version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/win32/Version.h)
endif()
Project(${PROJECT_NAME} C CXX ASM)
Project(${PROJECT_NAME} VERSION "${PROJECT_VERSION_STR}")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 17)
@ -71,7 +89,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
#deb
message(STATUS "this is a debian(ubuntu) system")
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
set(CPACK_PACKAGE_VERSION "1.0.0.1")
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION_STR}")
set(CPACK_PACKAGE_VENDOR "HEYAHONG")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SimpleBLETool By HYH")
set(CPACK_PACKAGE_DESCRIPTION "SimpleBLETool By HYH")

14
Version.h.in Normal file
View File

@ -0,0 +1,14 @@
#ifndef __PROJECT_VERSION_H__
#define __PROJECT_VERSION_H__
#define PROJECT_MAJOR_VERSION ${PROJECT_MAJOR_VERSION_STR}
#define PROJECT_MINOR_VERSION ${PROJECT_MINOR_VERSION_STR}
#define PROJECT_REVISION_VERSION ${PROJECT_REVISION_VERSION_STR}
#define PROJECT_BUILD_VERSION ${PROJECT_BUILD_VERSION_STR}
#define PROJECT_VERSION_STR "${PROJECT_VERSION_STR}"
#endif

View File

@ -1,9 +1,13 @@
#ifdef __GNUC__
1 24 "window_resources.manifest"
#endif
MAINICON ICON "window_resources.ico"
#include "Version.h"
#define VERSIONINT PROJECT_MAJOR_VERSION,PROJECT_MINOR_VERSION,PROJECT_REVISION_VERSION,PROJECT_BUILD_VERSION
#define VERSIONSTR PROJECT_VERSION_STR
#define VERSIONINT 1,0,0,1
#define VERSIONSTR "1,0,0,1"
1 VERSIONINFO
FILEVERSION VERSIONINT