You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.6 KiB
64 lines
2.6 KiB
# Get the latest git tag.
|
|
set(PADDLE_VERSION $ENV{PADDLE_VERSION})
|
|
set(tmp_version "HEAD")
|
|
set(TAG_VERSION_REGEX "[0-9]+\\.[0-9]+\\.[0-9]+(\\.(a|b|rc)\\.[0-9]+)?")
|
|
set(COMMIT_VERSION_REGEX "[0-9a-f]+[0-9a-f]+[0-9a-f]+[0-9a-f]+[0-9a-f]+")
|
|
while ("${PADDLE_VERSION}" STREQUAL "")
|
|
# Check current branch name
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref ${tmp_version}
|
|
WORKING_DIRECTORY ${PADDLE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_BRANCH_NAME
|
|
RESULT_VARIABLE GIT_BRANCH_RESULT
|
|
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
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}")
|
|
# if no tag was found, set PADDLE_VERSION to 0.0.0 to represent latest
|
|
set(PADDLE_VERSION "0.0.0")
|
|
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()
|
|
else()
|
|
execute_process(
|
|
COMMAND ${GIT_EXECUTABLE} describe --exact-match --tags ${tmp_version}
|
|
WORKING_DIRECTORY ${PADDLE_SOURCE_DIR}
|
|
OUTPUT_VARIABLE GIT_EXACT_TAG_NAME
|
|
RESULT_VARIABLE GIT_EXACT_TAG_RESULT
|
|
ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if (NOT ${GIT_EXACT_TAG_NAME})
|
|
# Check if current branch is tag branch
|
|
if (${GIT_EXACT_TAG_NAME} MATCHES "v${TAG_VERSION_REGEX}")
|
|
string(REPLACE "v" "" PADDLE_VERSION ${GIT_EXACT_TAG_NAME})
|
|
else()
|
|
set(PADDLE_VERSION "0.0.0")
|
|
endif()
|
|
else()
|
|
# otherwise, we always set PADDLE_VERSION to 0.0.0 to represent latest
|
|
set(PADDLE_VERSION "0.0.0")
|
|
endif()
|
|
endif()
|
|
else()
|
|
set(PADDLE_VERSION "0.0.0")
|
|
message(WARNING "Cannot add paddle version from git tag")
|
|
endif()
|
|
else()
|
|
set(PADDLE_VERSION "0.0.0")
|
|
message(WARNING "Cannot add paddle version for wrong git branch result")
|
|
endif()
|
|
endwhile()
|
|
|
|
add_definitions(-DPADDLE_VERSION=${PADDLE_VERSION})
|
|
message(STATUS "Paddle version is ${PADDLE_VERSION}")
|