diff --git a/version.cmake b/version.cmake index 4fed074..f822ae8 100644 --- a/version.cmake +++ b/version.cmake @@ -112,21 +112,21 @@ function(version) # {2} = Minor set(${OUT_VAR}_MINOR "${CMAKE_MATCH_2}" PARENT_SCOPE) # {3} = Patch - if(CMAKE_MATCH_3) + if((DEFINED CMAKE_MATCH_3) AND (NOT "${CMAKE_MATCH_3}" STREQUAL "")) string(SUBSTRING "${CMAKE_MATCH_3}" 1 -1 _TMP) set(${OUT_VAR}_PATCH "${_TMP}" PARENT_SCOPE) else() set(${OUT_VAR}_PATCH "" PARENT_SCOPE) endif() # {4} = Tweak - if(CMAKE_MATCH_4) + if((DEFINED CMAKE_MATCH_4) AND (NOT "${CMAKE_MATCH_4}" STREQUAL "")) string(SUBSTRING "${CMAKE_MATCH_4}" 1 -1 _TMP) set(${OUT_VAR}_TWEAK "${_TMP}" PARENT_SCOPE) else() set(${OUT_VAR}_TWEAK "" PARENT_SCOPE) endif() # {5} = PreRelease - if(CMAKE_MATCH_5) + if((DEFINED CMAKE_MATCH_5) AND (NOT "${CMAKE_MATCH_5}" STREQUAL "")) string(REPLACE "." ";" CMAKE_MATCH_5 "${CMAKE_MATCH_5}") # Handle dot separation as list. string(SUBSTRING "${CMAKE_MATCH_5}" 0 1 _TMP) if(_TMP STREQUAL "-") @@ -139,7 +139,7 @@ function(version) set(${OUT_VAR}_PRERELEASE "" PARENT_SCOPE) endif() # {6} = Build - if(CMAKE_MATCH_6) + if((DEFINED CMAKE_MATCH_6) AND (NOT "${CMAKE_MATCH_6}" STREQUAL "")) string(REPLACE "." ";" CMAKE_MATCH_6 "${CMAKE_MATCH_6}") # Handle dot separation as list. string(SUBSTRING "${CMAKE_MATCH_6}" 1 -1 CMAKE_MATCH_6) set(${OUT_VAR}_BUILD "${CMAKE_MATCH_6}" PARENT_SCOPE) @@ -165,9 +165,9 @@ function(version) ) # Do we have the major component, and is it valid? - if(_32070faa_MAJOR) + if(NOT "${_32070faa_MAJOR}" STREQUAL "") string(STRIP "${_32070faa_MAJOR}" _32070faa_MAJOR) - if(_32070faa_MAJOR STREQUAL "") + if("${_32070faa_MAJOR}" STREQUAL "") set(_32070faa_MAJOR 0) elseif(NOT (_32070faa_MAJOR MATCHES [[^[0-9]+$]])) set(${OUT_VAR}_ERROR "MAJOR component must be a numeric identifier, but is: '${_32070faa_MAJOR}'" PARENT_SCOPE) @@ -179,9 +179,9 @@ function(version) set(_feeb1eff "${_feeb1eff}${_32070faa_MAJOR}") # Do we have the minor component, and is it valid? - if(_32070faa_MINOR) + if(NOT "${_32070faa_MINOR}" STREQUAL "") string(STRIP "${_32070faa_MINOR}" _32070faa_MINOR) - if(_32070faa_MINOR STREQUAL "") + if("${_32070faa_MINOR}" STREQUAL "") set(_32070faa_MINOR 0) elseif(NOT (_32070faa_MINOR MATCHES [[^[0-9]+$]])) set(${OUT_VAR}_ERROR "MINOR component must be a numeric identifier, but is: '${_32070faa_MINOR}'" PARENT_SCOPE) @@ -193,10 +193,10 @@ function(version) set(_feeb1eff "${_feeb1eff}.${_32070faa_MINOR}") # Do we have the patch component, and is it valid? - if(_32070faa_PATCH) + if(NOT "${_32070faa_PATCH}" STREQUAL "") string(STRIP "${_32070faa_PATCH}" _32070faa_PATCH) - if(_32070faa_PATCH STREQUAL "") - unset(_32070faa_PATCH) + if("${_32070faa_PATCH}" STREQUAL "") + set(_32070faa_PATCH "") elseif(_32070faa_PATCH MATCHES [[^[0-9]+$]]) set(_feeb1eff "${_feeb1eff}.${_32070faa_PATCH}") else() @@ -206,12 +206,13 @@ function(version) endif() # Do we have the tweak component, and is it valid? - if(_32070faa_TWEAK) + if(NOT "${_32070faa_TWEAK}" STREQUAL "") string(STRIP "${_32070faa_TWEAK}" _32070faa_TWEAK) - if(_32070faa_TWEAK STREQUAL "") - unset(_32070faa_TWEAK) + if("${_32070faa_TWEAK}" STREQUAL "") + set(_32070faa_TWEAK "") elseif(_32070faa_TWEAK MATCHES [[^[0-9]+$]]) - if(NOT _32070faa_PATCH) + if("${_32070faa_PATCH}" STREQUAL "") + # Patch did not exist, so it is zero. set(_feeb1eff "${_feeb1eff}.0") endif() set(_feeb1eff "${_feeb1eff}.${_32070faa_TWEAK}") @@ -222,13 +223,13 @@ function(version) endif() # Do we have the pre-release component, and is it valid? - if(_32070faa_PRERELEASE) + if(NOT "${_32070faa_PRERELEASE}" STREQUAL "") string(STRIP "${_32070faa_PRERELEASE}" _32070faa_PRERELEASE) list(JOIN _32070faa_PRERELEASE "." _32070faa_PRERELEASE) - if(_32070faa_PRERELEASE STREQUAL "") - unset(_32070faa_PRERELEASE) + if("${_32070faa_PRERELEASE}" STREQUAL "") + set(_32070faa_PRERELEASE "") elseif(_32070faa_PRERELEASE MATCHES [[^[a-zA-Z0-9]+[a-zA-Z0-9\-\.]*$]]) - if(_32070faa_COMPRESS AND (_32070faa_PRERELEASE MATCHES [[[a-zA-Z]+[a-zA-Z0-9\-\.]*$]])) + if(_32070faa_COMPRESS AND (_32070faa_PRERELEASE MATCHES [[^[a-zA-Z]+[a-zA-Z0-9\-\.]*$]])) set(_feeb1eff "${_feeb1eff}${_32070faa_PRERELEASE}") else() set(_feeb1eff "${_feeb1eff}-${_32070faa_PRERELEASE}") @@ -240,10 +241,10 @@ function(version) endif() # Do we have the build component, and is it valid? - if(_32070faa_BUILD) - string(STRIP "${_32070faa_BUILD}" _32070faa_PRERELEASE) + if(NOT "${_32070faa_BUILD}" STREQUAL "") + string(STRIP "${_32070faa_BUILD}" _32070faa_BUILD) list(JOIN _32070faa_BUILD "." _32070faa_BUILD) - if(_32070faa_BUILD STREQUAL "") + if("${_32070faa_BUILD}" STREQUAL "") unset(_32070faa_BUILD) elseif(_32070faa_BUILD MATCHES [[^[a-zA-Z0-9]+[a-zA-Z0-9\-\.]*$]]) set(_feeb1eff "${_feeb1eff}+${_32070faa_BUILD}") @@ -274,14 +275,14 @@ function(version) # Helpers macro(modify_version_number) - if(${ARGV1}) - if(${ARGV1} MATCHES "^(\\+|\\-)([0-9]+)$") - if(${ARGV0}) - math(EXPR ${ARGV0} "${${ARGV0}} ${CMAKE_MATCH_1} ${CMAKE_MATCH_2}") - else() + if(NOT ("${${ARGV1}}" STREQUAL "")) + if("${${ARGV1}}" MATCHES "^(\\+|\\-)([0-9]+)$") + if("${${ARGV0}}" STREQUAL "") math(EXPR ${ARGV0} "0 ${CMAKE_MATCH_1} ${CMAKE_MATCH_2}") + else() + math(EXPR ${ARGV0} "${${ARGV0}} ${CMAKE_MATCH_1} ${CMAKE_MATCH_2}") endif() - else() + else() set(${ARGV0} "${${ARGV1}}") endif() endif() @@ -309,31 +310,31 @@ function(version) modify_version_number(_df8abcce_TWEAK _fe7bcddd_TWEAK) # Replace other components if defined. - if(_fe7bcddd_PRERELEASE) + if(NOT "${_fe7bcddd_PRERELEASE}" STREQUAL "") set(_df8abcce_PRERELEASE "${_fe7bcddd_PRERELEASE}") endif() - if(_fe7bcddd_BUILD) + if(NOT "${_fe7bcddd_BUILD}" STREQUAL "") set(_df8abcce_BUILD "${_fe7bcddd_BUILD}") endif() # Generate a new version. set(_fe7bcddd_GEN "") - if(_df8abcce_MAJOR AND (NOT _df8abcce_MAJOR STREQUAL "")) + if(NOT "${_df8abcce_MAJOR}" STREQUAL "") set(_fe7bcddd_GEN "${_fe7bcddd_GEN} MAJOR \"${_df8abcce_MAJOR}\"") endif() - if(_df8abcce_MINOR AND (NOT _df8abcce_MINOR STREQUAL "")) + if(NOT "${_df8abcce_MINOR}" STREQUAL "") set(_fe7bcddd_GEN "${_fe7bcddd_GEN} MINOR \"${_df8abcce_MINOR}\"") endif() - if(_df8abcce_PATCH AND (NOT _df8abcce_PATCH STREQUAL "")) + if(NOT "${_df8abcce_PATCH}" STREQUAL "") set(_fe7bcddd_GEN "${_fe7bcddd_GEN} PATCH \"${_df8abcce_PATCH}\"") endif() - if(_df8abcce_TWEAK AND (NOT _df8abcce_TWEAK STREQUAL "")) + if(NOT "${_df8abcce_TWEAK}" STREQUAL "") set(_fe7bcddd_GEN "${_fe7bcddd_GEN} TWEAK \"${_df8abcce_TWEAK}\"") endif() - if(_df8abcce_PRERELEASE AND (NOT _df8abcce_PRERELEASE STREQUAL "")) + if(NOT "${_df8abcce_PRERELEASE}" STREQUAL "") set(_fe7bcddd_GEN "${_fe7bcddd_GEN} PRERELEASE \"${_df8abcce_PRERELEASE}\"") endif() - if(_df8abcce_BUILD AND (NOT _df8abcce_BUILD STREQUAL "")) + if(NOT "${_df8abcce_BUILD}" STREQUAL "") set(_fe7bcddd_GEN "${_fe7bcddd_GEN} BUILD \"${_df8abcce_BUILD}\"") endif() if(_fe7bcddd_COMPRESS) @@ -403,11 +404,11 @@ function(version) elseif(_00fdeadb_PATCH LESS _ca75feel_PATCH) set(${OUT_VAR} "