Use cmake TIMESTAMP for BUILD_DATE+TIME
authorBernhard M. Wiedemann <bwiedemann@suse.de>
Wed, 18 Sep 2019 18:35:16 +0000 (20:35 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Wed, 18 Sep 2019 21:04:23 +0000 (23:04 +0200)
Use cmake TIMESTAMP for BUILD_DATE+TIME
this simplifies code a lot
and even makes it more portable to other platforms

TIMESTAMP is available since cmake-2.8.11 ; blender already requires
cmake>=3.5 so that is fine.

Note that with CMake>=3.8, if defined, the SOURCE_DATE_EPOCH envvar
will be used by CMake here.

Reviewers: mont29, campbellbarton

Reviewed By: mont29, campbellbarton

Differential Revision: https://developer.blender.org/D5760

build_files/cmake/buildinfo.cmake

index ec43534528af8f0ec3034bd4b76ab888a5d43ca1..cef6b94ee2e3012eac72b6712ba5dac5cd52a1c0 100644 (file)
@@ -145,22 +145,13 @@ if(EXISTS ${SOURCE_DIR}/.git)
   unset(_git_changed_files)
 endif()
 
-# BUILD_PLATFORM and BUILD_PLATFORM are taken from CMake
+# BUILD_PLATFORM is taken from CMake
 # but BUILD_DATE and BUILD_TIME are platform dependent
-if(UNIX)
-  if(NOT BUILD_DATE)
-    execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
-  endif()
-  if(NOT BUILD_TIME)
-    execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
-  endif()
-elseif(WIN32)
-  if(NOT BUILD_DATE)
-    execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
-  endif()
-  if(NOT BUILD_TIME)
-    execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
-  endif()
+if(NOT BUILD_DATE)
+  STRING(TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC)
+endif()
+if(NOT BUILD_TIME)
+  STRING(TIMESTAMP BUILD_TIME "%H:%M:%S" UTC)
 endif()
 
 # Write a file with the BUILD_HASH define