diff --git a/cmake/getversion.cmake b/cmake/getversion.cmake index cb27ebd87..aae7798ab 100644 --- a/cmake/getversion.cmake +++ b/cmake/getversion.cmake @@ -72,76 +72,48 @@ function(get_tag_name commit) message(STATUS "Commit is a release or prerelease, git tag: ${GIT_TAG}") # Extract information from tag: - # YYYY-MM-DD-Release-MAJ.MIN.PATCH - # YYYY-MM-DD-Development-MAJ.MIN.PATCH-beta.X + # MAJ.MIN.PATCH + # MAJ.MIN.PATCH-beta or MAJ.MIN.PATCH-beta.X string(REPLACE "-" ";" GIT_TAG_EXPLODED "${GIT_TAG}") string(REPLACE "." ";" GIT_TAG_EXPLODED "${GIT_TAG_EXPLODED}") # Sanity checks: length list(LENGTH GIT_TAG_EXPLODED GIT_TAG_LISTCOUNT) - if(${GIT_TAG_LISTCOUNT} LESS 7 OR ${GIT_TAG_LISTCOUNT} GREATER 9) + if(${GIT_TAG_LISTCOUNT} LESS 3 OR ${GIT_TAG_LISTCOUNT} GREATER 5) message(WARNING "Invalid tag format, got ${GIT_TAG_LISTCOUNT} tokens") return() endif() - # Year - list(GET GIT_TAG_EXPLODED 0 GIT_TAG_YEAR) - if(${GIT_TAG_YEAR} LESS 2017 OR ${GIT_TAG_LISTCOUNT} GREATER 2100) - message(WARNING "Invalid tag year ${GIT_TAG_YEAR}") - return() - endif() - - # Month - list(GET GIT_TAG_EXPLODED 1 GIT_TAG_MONTH) - if(${GIT_TAG_MONTH} LESS 1 OR ${GIT_TAG_MONTH} GREATER 12) - message(WARNING "Invalid tag month ${GIT_TAG_MONTH}") - return() - endif() - - # Day - list(GET GIT_TAG_EXPLODED 2 GIT_TAG_DAY) - if(${GIT_TAG_DAY} LESS 1 OR ${GIT_TAG_DAY} GREATER 31) - message(WARNING "Invalid tag day ${GIT_TAG_DAY}") - return() - endif() - - # Type - list(GET GIT_TAG_EXPLODED 3 GIT_TAG_TYPE) - if(NOT (${GIT_TAG_TYPE} STREQUAL "Release" OR ${GIT_TAG_TYPE} STREQUAL "Development")) - message(WARNING "Invalid tag type ${GIT_TAG_TYPE}") - return() - endif() - # Major - list(GET GIT_TAG_EXPLODED 4 GIT_TAG_MAJOR) + list(GET GIT_TAG_EXPLODED 0 GIT_TAG_MAJOR) if(${GIT_TAG_MAJOR} LESS 0 OR ${GIT_TAG_MAJOR} GREATER 99) message(WARNING "Invalid tag major version ${GIT_TAG_MAJOR}") return() endif() # Minor - list(GET GIT_TAG_EXPLODED 5 GIT_TAG_MINOR) + list(GET GIT_TAG_EXPLODED 1 GIT_TAG_MINOR) if(${GIT_TAG_MINOR} LESS 0 OR ${GIT_TAG_MINOR} GREATER 99) message(WARNING "Invalid tag minor version ${GIT_TAG_MINOR}") return() endif() # Patch - list(GET GIT_TAG_EXPLODED 6 GIT_TAG_PATCH) + list(GET GIT_TAG_EXPLODED 2 GIT_TAG_PATCH) if(${GIT_TAG_PATCH} LESS 0 OR ${GIT_TAG_PATCH} GREATER 99) message(WARNING "Invalid tag patch version ${GIT_TAG_PATCH}") return() endif() # Label - # 7 = Stable release - # 8 = Dev release, first beta so only "beta" attached - # 9 = Dev release, subsequent beta so "beta.N" attached (N>=2) - if(${GIT_TAG_LISTCOUNT} EQUAL 8) - list(GET GIT_TAG_EXPLODED 7 GIT_TAG_LABEL) - elseif(${GIT_TAG_LISTCOUNT} EQUAL 9) - list(GET GIT_TAG_EXPLODED 7 GIT_TAG_LABEL) - list(GET GIT_TAG_EXPLODED 8 GIT_TAG_LABEL_NUM) + # 3 Elements = No label = Stable release + # 4 Elements = Beta label = Dev release, first beta + # 5 Elements = Beta label = Dev release, subsequent beta + if(${GIT_TAG_LISTCOUNT} EQUAL 4) + list(GET GIT_TAG_EXPLODED 3 GIT_TAG_LABEL) + elseif(${GIT_TAG_LISTCOUNT} EQUAL 5) + list(GET GIT_TAG_EXPLODED 3 GIT_TAG_LABEL) + list(GET GIT_TAG_EXPLODED 4 GIT_TAG_LABEL_NUM) set(GIT_TAG_LABEL ${GIT_TAG_LABEL} ${GIT_TAG_LABEL_NUM}) string(REPLACE ";" "." GIT_TAG_LABEL "${GIT_TAG_LABEL}") else() @@ -166,16 +138,7 @@ function(get_tag_name commit) PARENT_SCOPE ) - if(${GIT_TAG_TYPE} STREQUAL "Development") - set(PROJECT_VERSION_LABEL - ${GIT_TAG_LABEL} - PARENT_SCOPE - ) - elseif(${GIT_TAG_TYPE} STREQUAL "Release") - set(PROJECT_VERSION_LABEL - "" - PARENT_SCOPE - ) + if(${GIT_TAG_LISTCOUNT} EQUAL 3) # set release name from env var set(PROJECT_VERSION_RELEASENAME "${GIT_TAG_RELEASENAME}"