1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
function (LoadVersion FILEPATH PREFIX)
# E.g., "MONGOC_VERSION".
string (REPLACE ";" "" VERSION_NAME ${PREFIX} _VERSION)
string (REPLACE ";" "" DIST_VERSION_NAME ${PREFIX} _DIST_VERSION)
file (STRINGS ${FILEPATH} VERSION_CONTENTS)
# A list of version components separated by dots and dashes: "1.3.0-[prerelease-marker]"
string (REGEX MATCHALL "[^.-]+" VERSION ${VERSION_CONTENTS})
list (GET VERSION 0 MAJOR_VERSION)
string (REPLACE ";" "" MAJOR_VERSION_NAME ${PREFIX} _MAJOR_VERSION)
set (${MAJOR_VERSION_NAME} ${MAJOR_VERSION} PARENT_SCOPE)
list (GET VERSION 1 MINOR_VERSION)
string (REPLACE ";" "" MINOR_VERSION_NAME ${PREFIX} _MINOR_VERSION)
set (${MINOR_VERSION_NAME} ${MINOR_VERSION} PARENT_SCOPE)
list (GET VERSION 2 MICRO_VERSION)
string (REPLACE ";" "" MICRO_VERSION_NAME ${PREFIX} _MICRO_VERSION)
set (${MICRO_VERSION_NAME} ${MICRO_VERSION} PARENT_SCOPE)
string (REPLACE ";" "" PRERELEASE_VERSION_NAME ${PREFIX} _PRERELEASE_VERSION)
string (REPLACE ";" "" PRERELEASE_DIST_VERSION_NAME ${PREFIX} _PRERELEASE_DIST_VERSION)
list (LENGTH VERSION VERSION_LENGTH)
if (VERSION_LENGTH GREATER 3)
list (GET VERSION 3 PRERELEASE_VERSION)
set (${PRERELEASE_DIST_VERSION_NAME} ${PRERELEASE_VERSION} PARENT_SCOPE)
set (${PRERELEASE_VERSION_NAME} "pre" PARENT_SCOPE)
set (${VERSION_NAME}
"${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}-pre"
PARENT_SCOPE)
set (${DIST_VERSION_NAME}
"${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}-${PRERELEASE_VERSION}"
PARENT_SCOPE)
else ()
set (${PRERELEASE_DIST_VERSION_NAME} "" PARENT_SCOPE)
set (${PRERELEASE_VERSION_NAME} "" PARENT_SCOPE)
set (${VERSION_NAME}
"${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}"
PARENT_SCOPE)
set (${DIST_VERSION_NAME}
"${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}"
PARENT_SCOPE)
endif ()
endfunction (LoadVersion)
|