Преглед на файлове

Z991239-632 #comment feature: cmake 添加编译时间戳

gifur преди 5 години
родител
ревизия
767f194cf7
променени са 2 файла, в които са добавени 59 реда и са изтрити 2 реда
  1. 8 2
      CMakeLists.txt
  2. 51 0
      addin/cmake/TodayTimeStamp.cmake

+ 8 - 2
CMakeLists.txt

@@ -33,6 +33,7 @@ include(CheckSymbolExists)
 include(ConfigOptions)
 include(GetGitRevisionDescription)
 include(ComplexLibrary)
+include(TodayTimeStamp)
 
 # include path enviroment for RVC
 include(BuildMakeSettings)
@@ -47,11 +48,16 @@ if ($ENV{BUILD_NUMBER})
 	set(BUILD_NUMBER $ENV{BUILD_NUMBER})
 endif()
 
+# THIS_MONTH(BUILD_NUMBER)
+get_today(BUILD_YEAR BUILD_MONTH BUILD_DAY)
+
+message(STATUS "build time: ${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")
-set(RVC_COPYRIGHT "Copyright (C) 2020")
-set(RVC_DESCRIPTION "2020.01")
+set(RVC_COPYRIGHT "Copyright (C) ${BUILD_YEAR}")
+set(RVC_DESCRIPTION "${BUILD_YEAR}.${BUILD_MONTH}")
 
 #Set the project version
 set(RAW_VERSION_STRING "1.0.1-dev1")

+ 51 - 0
addin/cmake/TodayTimeStamp.cmake

@@ -0,0 +1,51 @@
+# This script returns the current date in ISO format
+#
+# YYYY-MM-DD +%Y-%m-%d
+#
+MACRO (TODAY RESULT)
+    if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
+        EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y-%m-%d"
+                        OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
+    elseif(CMAKE_VERSION VERSION_LESS "2.8.11")
+	if (WIN32)
+		message(FATAL_ERROR "Your CMake version is too old. Please update to a more recent version >= 2.8.11")
+	else()
+		EXECUTE_PROCESS(COMMAND "date" "-u" "+%Y-%m-%d"
+                        OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
+	endif()
+    else()
+        STRING(TIMESTAMP ${RESULT} "%Y-%m-%d" UTC)
+    endif()
+ENDMACRO (TODAY)
+
+MACRO (THIS_MONTH RESULT)
+    if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
+        EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y%m"
+                        OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
+    elseif(CMAKE_VERSION VERSION_LESS "2.8.11")
+	if (WIN32)
+		message(FATAL_ERROR "Your CMake version is too old. Please update to a more recent version >= 2.8.11")
+	else()
+		EXECUTE_PROCESS(COMMAND "date" "-u" "+%Y%m"
+                        OUTPUT_VARIABLE ${RESULT} OUTPUT_STRIP_TRAILING_WHITESPACE)
+	endif()
+    else()
+        STRING(TIMESTAMP ${RESULT} "%Y%m" UTC)
+    endif()
+ENDMACRO (THIS_MONTH)
+
+
+MACRO (get_today  _year _month _day)
+    if (DEFINED ENV{SOURCE_DATE_EPOCH} AND NOT WIN32)
+        EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%Y"
+                        OUTPUT_VARIABLE ${_year} OUTPUT_STRIP_TRAILING_WHITESPACE)
+        EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%m"
+                        OUTPUT_VARIABLE ${_month} OUTPUT_STRIP_TRAILING_WHITESPACE)
+        EXECUTE_PROCESS(COMMAND "date" "-u" "-d" "@$ENV{SOURCE_DATE_EPOCH}" "+%d"
+                        OUTPUT_VARIABLE ${_day} OUTPUT_STRIP_TRAILING_WHITESPACE)
+    else()
+        STRING(TIMESTAMP ${_year} "%Y")
+        STRING(TIMESTAMP ${_month} "%m")
+        STRING(TIMESTAMP ${_day} "%d")
+    endif()
+ENDMACRO (get_today)