From c838406b19f8d1f2a0b8496b01670b199adf1029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Thu, 12 Mar 2020 19:49:57 +0100 Subject: [PATCH] Use the source package date or the source git repository date instead of the current build date. The use of a stable date is necessary to achieve reproducible builds. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko (cherry picked from commit 589e29d02047aaae584234d0568ef03da6cfd47f) --- modules/FindTDE.cmake | 3 +++ modules/TDEMacros.cmake | 57 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/modules/FindTDE.cmake b/modules/FindTDE.cmake index 3848bb9..4f48ab4 100644 --- a/modules/FindTDE.cmake +++ b/modules/FindTDE.cmake @@ -86,6 +86,9 @@ if( NOT TDE_FOUND ) set( KDE3_DCOPIDLNG_EXECUTABLE env KDECONFIG=${KDECONFIG_EXECUTABLE} ${KDE3_DCOPIDLNG_EXECUTABLE} CACHE INTERNAL "dcopidlng executable" FORCE ) + # read source metadata + tde_read_src_metadata() + message( STATUS " found 'TDE', version ${TDE_VERSION}" ) endif( NOT TDE_FOUND ) diff --git a/modules/TDEMacros.cmake b/modules/TDEMacros.cmake index 4b1bd97..438f97c 100644 --- a/modules/TDEMacros.cmake +++ b/modules/TDEMacros.cmake @@ -102,6 +102,47 @@ macro( tde_execute_process ) endmacro( tde_execute_process ) +################################################ +##### +##### tde_read_src_metadata + +macro( tde_read_src_metadata ) + # look for SCM data if present + if( EXISTS "${CMAKE_SOURCE_DIR}/.tdescminfo" ) + file( READ "${CMAKE_SOURCE_DIR}/.tdescminfo" TDE_SCM_INFO ) + string( REGEX MATCH "(^|\n)Name: ([^\n]*)" TDE_SCM_MODULE_NAME "${TDE_SCM_INFO}" ) + string( REGEX REPLACE "^[^:]*: " "" TDE_SCM_MODULE_NAME "${TDE_SCM_MODULE_NAME}" ) + string( REGEX MATCH "(^|\n)Revision: ([^\n]*)" TDE_SCM_MODULE_REVISION "${TDE_SCM_INFO}" ) + string( REGEX REPLACE "^[^:]*: " "" TDE_SCM_MODULE_REVISION "${TDE_SCM_MODULE_REVISION}" ) + string( REGEX MATCH "(^|\n)DateTime: ([^\n]*)" TDE_SCM_MODULE_DATETIME "${TDE_SCM_INFO}" ) + string( REGEX REPLACE "^[^:]*: " "" TDE_SCM_MODULE_DATETIME "${TDE_SCM_MODULE_DATETIME}" ) + else( ) + if( EXISTS "${CMAKE_SOURCE_DIR}/.tdescmmodule" ) + file( STRINGS "${CMAKE_SOURCE_DIR}/.tdescmmodule" TDE_SCM_MODULE_NAME ) + endif( EXISTS "${CMAKE_SOURCE_DIR}/.tdescmmodule" ) + if( EXISTS "${CMAKE_SOURCE_DIR}/.tdescmrevision" ) + file( STRINGS "${CMAKE_SOURCE_DIR}/.tdescmrevision" TDE_SCM_MODULE_REVISION ) + endif( EXISTS "${CMAKE_SOURCE_DIR}/.tdescmrevision" ) + endif( ) + + # look for package data if present + if( EXISTS "${CMAKE_SOURCE_DIR}/.tdepkginfo" ) + file( READ "${CMAKE_SOURCE_DIR}/.tdepkginfo" TDE_PKG_INFO ) + endif( ) + if( EXISTS "${CMAKE_BINARY_DIR}/.tdepkginfo" ) + file( READ "${CMAKE_BINARY_DIR}/.tdepkginfo" TDE_PKG_INFO ) + endif( ) + if( TDE_PKG_INFO ) + string( REGEX MATCH "(^|\n)Name: ([^\n]*)" TDE_PKG_NAME "${TDE_PKG_INFO}" ) + string( REGEX REPLACE "^[^:]*: " "" TDE_PKG_NAME "${TDE_PKG_NAME}" ) + string( REGEX MATCH "(^|\n)Version: ([^\n]*)" TDE_PKG_REVISION "${TDE_PKG_INFO}" ) + string( REGEX REPLACE "^[^:]*: " "" TDE_PKG_VERSION "${TDE_PKG_VERSION}" ) + string( REGEX MATCH "(^|\n)DateTime: ([^\n]*)" TDE_PKG_DATETIME "${TDE_PKG_INFO}" ) + string( REGEX REPLACE "^[^:]*: " "" TDE_PKG_DATETIME "${TDE_PKG_DATETIME}" ) + endif( ) +endmacro( tde_read_src_metadata ) + + if( DEFINED MASTER_SOURCE_DIR ) return( ) endif( ) @@ -865,6 +906,22 @@ macro( tde_add_kpart _target ) endmacro( tde_add_kpart ) +################################################# +##### +##### tde_curdatetime + +macro( tde_curdatetime result ) + if( TDE_PKG_DATETIME ) + set( ${result} ${TDE_PKG_DATETIME} ) + elseif( TDE_SCM_MODULE_DATETIME ) + set( ${result} ${TDE_SCM_MODULE_DATETIME} ) + else( ) + tde_execute_process( COMMAND "date" "+%m/%d/%Y %H:%M:%S" OUTPUT_VARIABLE ${result} ) + string( REGEX REPLACE "(..)/(..)/(....) (........).*" "\\1/\\2/\\3 \\4" ${result} ${${result}} ) + endif( ) +endmacro( tde_curdatetime ) + + ################################################# ##### ##### tde_add_executable