Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/cmake/buildinfo.cmake')
-rw-r--r--build_files/cmake/buildinfo.cmake39
1 files changed, 39 insertions, 0 deletions
diff --git a/build_files/cmake/buildinfo.cmake b/build_files/cmake/buildinfo.cmake
new file mode 100644
index 00000000000..bfc17ae2cfe
--- /dev/null
+++ b/build_files/cmake/buildinfo.cmake
@@ -0,0 +1,39 @@
+# This is called by cmake as an extermal process from
+# ./source/creator/CMakeLists.txt to write ./source/creator/buildinfo.h
+
+# The FindSubversion.cmake module is part of the standard distribution
+include(FindSubversion)
+
+# Extract working copy information for SOURCE_DIR into MY_XXX variables
+# with a default in case anything fails, for examble when using git-svn
+set(MY_WC_REVISION "unknown")
+# Guess if this is a SVN working copy and then look up the revision
+if(EXISTS ${SOURCE_DIR}/.svn/)
+ if(Subversion_FOUND)
+ Subversion_WC_INFO(${SOURCE_DIR} MY)
+ endif()
+endif()
+
+# BUILD_PLATFORM and BUILD_PLATFORM are taken from CMake
+# but BUILD_DATE and BUILD_TIME are plataform dependant
+if(UNIX)
+ execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+if(WIN32)
+ execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
+endif()
+
+# Write a file with the SVNVERSION define
+file(WRITE buildinfo.h.txt
+ "#define BUILD_REV ${MY_WC_REVISION}\n"
+ "#define BUILD_DATE ${BUILD_DATE}\n"
+ "#define BUILD_TIME ${BUILD_TIME}\n"
+)
+
+# Copy the file to the final header only if the version changes
+# and avoid needless rebuilds
+# TODO: verify this comment is true, as BUILD_TIME probably changes
+execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ buildinfo.h.txt buildinfo.h)