version.cmake 2.0 KB
Newer Older
Y
Yu Yang 已提交
1 2 3
# Get the latest git tag.
set(PADDLE_VERSION $ENV{PADDLE_VERSION})
set(tmp_version "HEAD")
M
minqiyang 已提交
4
set(TAG_VERSION_REGEX "[0-9]+\\.[0-9]+\\.[0-9]+(\\.(a|b|rc)\\.[0-9]+)?")
5
set(COMMIT_VERSION_REGEX "[0-9a-f]+[0-9a-f]+[0-9a-f]+[0-9a-f]+[0-9a-f]+")
Y
Yu Yang 已提交
6
while ("${PADDLE_VERSION}" STREQUAL "")
7
  # Check current branch name
Y
Yu Yang 已提交
8
  execute_process(
9
    COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref ${tmp_version}
10
    WORKING_DIRECTORY ${PADDLE_SOURCE_DIR}
11 12
    OUTPUT_VARIABLE GIT_BRANCH_NAME
    RESULT_VARIABLE GIT_BRANCH_RESULT
Y
Yu Yang 已提交
13
    ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
14 15 16 17 18 19 20 21 22 23 24 25
  if (NOT ${GIT_BRANCH_RESULT})
    execute_process(
      COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0 --always ${tmp_version}
      WORKING_DIRECTORY ${PADDLE_SOURCE_DIR}
      OUTPUT_VARIABLE GIT_TAG_NAME
      RESULT_VARIABLE GIT_RESULT
      ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
    if (NOT ${GIT_RESULT})
      # Check if current branch is release branch
      if (${GIT_BRANCH_NAME} MATCHES "release/${TAG_VERSION_REGEX}")
        # Check the tag is a correct version
        if (${GIT_TAG_NAME} MATCHES "${COMMIT_VERSION_REGEX}")
M
minqiyang 已提交
26 27
          # if no tag was found, set PADDLE_VERSION to 0.0.0 to represent latest
          set(PADDLE_VERSION "0.0.0")
28 29 30 31 32
        elseif (${GIT_TAG_NAME} MATCHES "v${TAG_VERSION_REGEX}")
          string(REPLACE "v" "" PADDLE_VERSION ${GIT_TAG_NAME})
        else()  # otherwise, get the previous git tag name.
          set(tmp_version "${GIT_TAG_NAME}~1")
        endif()
M
minqiyang 已提交
33 34 35
      else()
        # otherwise, we always set PADDLE_VERSION to 0.0.0 to represent latest
        set(PADDLE_VERSION "0.0.0")
36 37 38 39
      endif()
    else()
      set(PADDLE_VERSION "0.0.0")
      message(WARNING "Cannot add paddle version from git tag")
Y
Yu Yang 已提交
40 41 42
    endif()
  else()
    set(PADDLE_VERSION "0.0.0")
43
    message(WARNING "Cannot add paddle version for wrong git branch result")
Y
Yu Yang 已提交
44 45 46
  endif()
endwhile()

47
add_definitions(-DPADDLE_VERSION=${PADDLE_VERSION})
Y
Yu Yang 已提交
48
message(STATUS "Paddle version is ${PADDLE_VERSION}")