From: Ralf Habacker Date: Tue, 20 Sep 2011 07:57:52 +0000 (+0200) Subject: cmake fix: generate build timestamp X-Git-Tag: dbus-1.4.18~19^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e41d1630839cf08c9f13dec72bf395f2773eb680;p=thirdparty%2Fdbus.git cmake fix: generate build timestamp Bug: https://bugs.freedesktop.org/show_bug.cgi?id=41029 Reviewed-by: Simon McVittie --- diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index f475876bd..905a6b81a 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -13,11 +13,6 @@ set (DBUS_VERSION ${DBUS_MAJOR_VERSION}.${DBUS_MINOR_VERSION}.${DBUS_MICRO_VERSI set (DBUS_VERSION_STRING "${DBUS_VERSION}") -if (NOT DBUS_BUILD_TIMESTAMP) - message(STATUS "FIXME set DBUS_BUILD_TIMESTAMP to current date or fix current time stamp generation for having actual build date in version file info") - set (DBUS_BUILD_TIMESTAMP 20091231) -endif (NOT DBUS_BUILD_TIMESTAMP) - # we need to be up to date CMAKE_MINIMUM_REQUIRED(VERSION 2.4.4 FATAL_ERROR) if(COMMAND cmake_policy) @@ -27,6 +22,9 @@ endif(COMMAND cmake_policy) # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/modules") +include(Macros) +TIMESTAMP(DBUS_BUILD_TIMESTAMP) + ########### basic vars ############### diff --git a/cmake/modules/Macros.cmake b/cmake/modules/Macros.cmake new file mode 100644 index 000000000..b6371568a --- /dev/null +++ b/cmake/modules/Macros.cmake @@ -0,0 +1,15 @@ + +MACRO(TIMESTAMP RESULT) + IF(WIN32) + EXECUTE_PROCESS(COMMAND "cmd" " /C date /T" OUTPUT_VARIABLE DATE) + string(REGEX REPLACE "(..)[/.](..)[/.](....).*" "\\3\\2\\1" DATE ${DATE}) + EXECUTE_PROCESS(COMMAND "cmd" " /C time /T" OUTPUT_VARIABLE TIME) + string(REGEX REPLACE "(..):(..)" "\\1\\2" TIME ${TIME}) + set (${RESULT} "${DATE}${TIME}") + ELSEIF(UNIX) + EXECUTE_PROCESS(COMMAND "date" "+%Y%m%d%H%M" OUTPUT_VARIABLE ${RESULT}) + ELSE() + MESSAGE(SEND_ERROR "date not implemented") + SET(${RESULT} 000000000000) + ENDIF() +ENDMACRO()