diff options
Diffstat (limited to 'libmariadb/cmake/version_info.cmake')
-rw-r--r-- | libmariadb/cmake/version_info.cmake | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/libmariadb/cmake/version_info.cmake b/libmariadb/cmake/version_info.cmake new file mode 100644 index 00000000..ca0716da --- /dev/null +++ b/libmariadb/cmake/version_info.cmake @@ -0,0 +1,44 @@ +# +# Copyright (C) 2013-2016 MariaDB Corporation AB +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the COPYING-CMAKE-SCRIPTS file. +# +FUNCTION(GET_FILE_VERSION FILE_NAME FILE_VERSION) + + # if we build from a git repository, we calculate the file version: + # Patch number is number of commits for given file + IF(GIT_EXECUTABLE AND EXISTS ${CC_SOURCE_DIR}/.git) + EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} --git-dir=${CC_SOURCE_DIR}/.git --work-tree=${CC_SOURCE_DIR} rev-list HEAD --count -- ${FILE_NAME} + OUTPUT_VARIABLE FV) + STRING(REPLACE "\n" "" FV ${FV}) + SET(${FILE_VERSION} ${FV} PARENT_SCOPE) + ELSE() + SET(${FILE_VERSION} 0) + ENDIF() +ENDFUNCTION() + +MACRO(SET_VERSION_INFO) + SET(FILE_VERSION "0") + FOREACH(PROPERTY ${ARGN}) + IF(${PROPERTY} MATCHES "TARGET:") + STRING(REGEX REPLACE "^[TARGET:\\s]" "" TARGET ${PROPERTY}) + ELSEIF(${PROPERTY} MATCHES "FILE_TYPE:") + STRING(REGEX REPLACE "^[FILE_TYPE:\\s]" "" FILE_TYPE ${PROPERTY}) + ELSEIF(${PROPERTY} MATCHES "ORIGINAL_FILE_NAME:") + STRING(REGEX REPLACE "^[ORIGINAL_FILE_NAME:\\s]" "" ORIGINAL_FILE_NAME ${PROPERTY}) + ELSEIF(${PROPERTY} MATCHES "SOURCE_FILE:") + STRING(REGEX REPLACE "^[SOURCE_FILE:\\s]" "" SOURCE ${PROPERTY}) + GET_FILE_VERSION(${SOURCE} FILE_VERSION) + ELSEIF(${PROPERTY} MATCHES "FILE_DESCRIPTION:") + STRING(REPLACE "FILE_DESCRIPTION:" "" FILE_DESCRIPTION ${PROPERTY}) + ENDIF() + ENDFOREACH() + CONFIGURE_FILE(${CC_SOURCE_DIR}/win/resource.rc.in + ${CC_BINARY_DIR}/win/${TARGET}.rc) + SET(${TARGET}_RC ${CC_BINARY_DIR}/win/${TARGET}.rc) +ENDMACRO() + + + |