浏览代码

#IQRV #comment [CMake] CMake同步计数标识

gifur 5 年之前
父节点
当前提交
0cc9edd4ba
共有 3 个文件被更改,包括 38 次插入7 次删除
  1. 8 5
      CMakeLists.txt
  2. 27 1
      addin/cmake/BuildMakeSettings.cmake
  3. 3 1
      addin/cmake/ConfigOptions.cmake

+ 8 - 5
CMakeLists.txt

@@ -37,13 +37,18 @@ include(ComplexLibrary)
 include(TodayTimeStamp)
 include(PrecompiledHeader)
 include(WindowsDLLVersion)
-
+include(BuildMakeSettings)
 # Turn on solution folders (2.8.4+) for Visual Studio.
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
+# THIS_MONTH(BUILD_NUMBER)
+get_today(BUILD_YEAR BUILD_MONTH BUILD_DAY)
+
 set(BUILD_NUMBER 0)
 if ($ENV{BUILD_NUMBER})
 	set(BUILD_NUMBER $ENV{BUILD_NUMBER})
+else()
+	rvc_record_build_number()
 endif()
 
 #Set the project version
@@ -59,8 +64,9 @@ string(REGEX REPLACE "${VERSION_REGEX}" "\\4" RVC_VERSION_SUFFIX "${RAW_VERSION_
 if(BUILD_NUMBER EQUAL 0)
 	set(VERSION_DEV_REGEX "^.?([0-9]+)\\.([0-9]+)\\.([0-9]+)-(dev|test)(.*)")
 	string(REGEX REPLACE "${VERSION_DEV_REGEX}" "\\5" RVC_DEV_NUM "${RAW_VERSION_STRING}")
-	message(STATUS "dev index: ${RVC_DEV_NUM}")
 	set(BUILD_NUMBER ${RVC_DEV_NUM})
+else()
+	message(STATUS "BUILD_NUMBER ${BUILD_NUMBER}")
 endif()
 
 set(RVC_VERSION_BUILD "${BUILD_NUMBER}")
@@ -81,9 +87,6 @@ if(BUILD_SHARED_LIBS)
 	message(STATUS "Build shared libraries")
 endif(BUILD_SHARED_LIBS)
 
-# THIS_MONTH(BUILD_NUMBER)
-get_today(BUILD_YEAR BUILD_MONTH BUILD_DAY)
-
 set(RVC_COMPANY "China Merchants Bank" CACHE STRING "China Merchants Bank Corporation")
 set(RVC_PRODUCT "VTM")
 set(RVC_AUTHOR "CCDG")

+ 27 - 1
addin/cmake/BuildMakeSettings.cmake

@@ -45,4 +45,30 @@ foreach(dir ${all_valid_subdirs})
 		add_subdirectory(${dir_trimmed})
 	endif()
 endforeach(dir)
-endmacro(rvc_add_all_cmake_subdirectory)
+endmacro(rvc_add_all_cmake_subdirectory)
+
+
+macro(rvc_record_build_number)
+	if(WITH_CI_NUMBER)
+		set(CURRENT_BUILD_TIMES 1)
+		math(EXPR DAYS "100 * ${BUILD_MONTH} + ${BUILD_DAY}" OUTPUT_FORMAT DECIMAL)
+		if(EXISTS "${PROJECT_BINARY_DIR}/BuildNumber.txt")
+			file(STRINGS "${PROJECT_BINARY_DIR}/BuildNumber.txt" BUILD_STORE_NUMBER)
+			message(STATUS "string: ${BUILD_STORE_NUMBER}")
+			if(BUILD_STORE_NUMBER)
+				set(VERSION_REGEX "^([0-9]+)-([0-9]+)")
+				string(REGEX REPLACE "${VERSION_REGEX}" "\\1" LAST_BUILD_DAYS "${BUILD_STORE_NUMBER}")
+				string(REGEX REPLACE "${VERSION_REGEX}" "\\2" LAST_BUILD_TIMES "${BUILD_STORE_NUMBER}")
+				message(STATUS "splited number: ${LAST_BUILD_DAYS}-${LAST_BUILD_TIMES}")
+				set(CURRENT_BUILD_DAYS "${DAYS}")
+				string(COMPARE EQUAL ${LAST_BUILD_DAYS} ${CURRENT_BUILD_DAYS} THE_SAME_DAY)
+				if(THE_SAME_DAY)
+					math(EXPR INCRE_DAYS "${LAST_BUILD_TIMES} + 1" OUTPUT_FORMAT DECIMAL)
+					set(CURRENT_BUILD_TIMES ${INCRE_DAYS})
+				endif(THE_SAME_DAY)
+			endif(BUILD_STORE_NUMBER)
+		endif()
+		set(BUILD_NUMBER ${DAYS}${CURRENT_BUILD_TIMES})
+		file(WRITE "${PROJECT_BINARY_DIR}/BuildNumber.txt" "${DAYS}-${CURRENT_BUILD_TIMES}")
+	endif(WITH_CI_NUMBER)
+endmacro(rvc_record_build_number)

+ 3 - 1
addin/cmake/ConfigOptions.cmake

@@ -29,4 +29,6 @@ option(WITH_THIRD_PARTY "Build third-party components" ON)
 
 option(SIMULATE_ON "/run/version/1.2.3.4/" ON)
 
-option(BUILD_DEVADAPTER "whether build device adapter or not" ON)
+option(BUILD_DEVADAPTER "whether build device adapter or not" ON)
+
+option(WITH_CI_NUMBER "increment build number, especially CI environment" OFF)