Warning, /office/kexi/cmake/modules/SetKexiVersionInfo.cmake is written in an unsupported language. File is not indexed.
0001 # Copyright (C) 2003-2019 Jarosław Staniek <staniek@kde.org> 0002 # 0003 # Redistribution and use is allowed according to the terms of the BSD license. 0004 # For details see the accompanying COPYING-CMAKE-SCRIPTS file. 0005 0006 # Define common versions of Kexi components used to generate KexiVersion.h 0007 # update these version for every release: 0008 set(PROJECT_STABLE_VERSION_MAJOR 3) # 3 for 3.x, 4 for 4.x, etc. 0009 set(PROJECT_STABLE_VERSION_MINOR 2) # 0 for 3.0, 1 for 3.1, etc. 0010 #set(KEXI_ALPHA 1) # uncomment only for x.y.0 Alpha 0011 #set(KEXI_BETA 1) # uncomment and set stage version only for x.y.0 Beta N 0012 #set(KEXI_RC 1) # uncomment and set stage version only for x.y.0 RC N 0013 set(KEXI_STABLE 0) # uncomment and set release version only for Stable x.y.N 0014 set(KEXI_YEAR 2019) # update every year 0015 0016 # -- do not edit below this line -- 0017 0018 set(PROJECT_STABLE_VERSION_RELEASE 0) # default for unstable 0019 0020 # Set user-friendly stage name such as "Alpha" and PROJECT_VERSION_RELEASE 0021 if(DEFINED KEXI_ALPHA) 0022 set(PROJECT_STAGE_STRING " Alpha") 0023 set(KEXI_STAGE 1) # always 1 0024 if(PROJECT_STABLE_VERSION_RELEASE EQUAL 0) 0025 math(EXPR PROJECT_VERSION_RELEASE "89 + ${KEXI_ALPHA}") # 90 0026 endif() 0027 elseif(DEFINED KEXI_BETA) 0028 set(PROJECT_STAGE_STRING " Beta") 0029 set(KEXI_STAGE ${KEXI_BETA}) 0030 if(PROJECT_STABLE_VERSION_RELEASE EQUAL 0) 0031 math(EXPR PROJECT_VERSION_RELEASE "90 + ${KEXI_BETA}") # >=91 0032 endif() 0033 elseif(DEFINED KEXI_RC) 0034 set(PROJECT_STAGE_STRING " RC") 0035 set(KEXI_STAGE ${KEXI_RC}) 0036 if(PROJECT_STABLE_VERSION_RELEASE EQUAL 0) 0037 math(EXPR PROJECT_VERSION_RELEASE "93 + ${KEXI_RC}") # >=94 0038 endif() 0039 elseif(DEFINED KEXI_STABLE) 0040 set(PROJECT_STAGE_STRING "") 0041 set(KEXI_STAGE ${KEXI_STABLE}) 0042 set(PROJECT_STABLE_VERSION_RELEASE ${KEXI_STABLE}) # rule for stable 0043 set(PROJECT_VERSION_RELEASE ${PROJECT_STABLE_VERSION_RELEASE}) 0044 else() 0045 message(FATAL_ERROR "One of KEXI_ALPHA/BETA/RC/STABLE must be defined.") 0046 endif() 0047 if(DEFINED KEXI_STABLE AND (DEFINED KEXI_ALPHA OR DEFINED KEXI_BETA OR DEFINED KEXI_RC)) 0048 message(FATAL_ERROR "None of KEXI_ALPHA/BETA/RC can be defined when KEXI_STABLE is defined.") 0049 endif() 0050 if(NOT DEFINED KEXI_STABLE AND NOT DEFINED KEXI_ALPHA) # Beta 1, etc. 0051 set(PROJECT_STAGE_STRING "${PROJECT_STAGE_STRING} ${KEXI_STAGE}") 0052 endif() 0053 0054 set(KEXI_CUSTOM_DISTRIBUTION_VERSION "" CACHE STRING 0055 "Custom name of Kexi version useful to construct co-installabile releases. Any nonempty directory name is accepted. If specified it will be used in KEXI_DISTRIBUTION_VERSION. If not specified, KEXI_DISTRIBUTION_VERSION will be set to PROJECT_STABLE_VERSION_MAJOR.PROJECT_STABLE_VERSION_MINOR.") 0056 0057 if(KEXI_CUSTOM_DISTRIBUTION_VERSION STREQUAL "") 0058 set(KEXI_DISTRIBUTION_VERSION "${PROJECT_STABLE_VERSION_MAJOR}.${PROJECT_STABLE_VERSION_MINOR}") 0059 else() 0060 set(KEXI_DISTRIBUTION_VERSION "${KEXI_CUSTOM_DISTRIBUTION_VERSION}") 0061 endif() 0062 0063 # Relative path name useful to construct co-installabile file names and paths 0064 set(KEXI_BASE_PATH "kexi/${KEXI_DISTRIBUTION_VERSION}") 0065 0066 # PROJECT_VERSION_MAJOR is the same as PROJECT_STABLE_VERSION_MAJOR but for unstable x.0 0067 # x is decreased by one, e.g. 3.0 Beta is 2.99. 0068 if(NOT DEFINED KEXI_STABLE AND PROJECT_STABLE_VERSION_MINOR EQUAL 0) 0069 math(EXPR PROJECT_VERSION_MAJOR "${PROJECT_STABLE_VERSION_MAJOR} - 1") 0070 else() 0071 math(EXPR PROJECT_VERSION_MAJOR ${PROJECT_STABLE_VERSION_MAJOR}) 0072 endif() 0073 0074 # PROJECT_VERSION_MINOR is equal to PROJECT_STABLE_VERSION_MINOR for stable releases, 0075 # equal to 99 for x.0 unstable releases (e.g. it's 3.0 Beta has minor version 99), 0076 # and equal to PROJECT_STABLE_VERSION_MINOR-1 for unstable releases other than x.0. 0077 if(DEFINED KEXI_STABLE) 0078 set(PROJECT_VERSION_MINOR ${PROJECT_STABLE_VERSION_MINOR}) 0079 elseif(PROJECT_STABLE_VERSION_MINOR EQUAL 0) 0080 set(PROJECT_VERSION_MINOR 99) 0081 else() 0082 math(EXPR PROJECT_VERSION_MINOR "${PROJECT_STABLE_VERSION_MINOR} - 1") 0083 endif() 0084 0085 # PROJECT_VERSION_STRING is user-friendly name such as "3.2" or "3.2 Beta 1" 0086 set(PROJECT_VERSION_STRING "${PROJECT_STABLE_VERSION_MAJOR}.${PROJECT_STABLE_VERSION_MINOR}") 0087 if (${PROJECT_STABLE_VERSION_RELEASE} GREATER 0) 0088 set(PROJECT_VERSION_STRING "${PROJECT_VERSION_STRING}.${PROJECT_STABLE_VERSION_RELEASE}") 0089 endif() 0090 set(PROJECT_VERSION_STRING "${PROJECT_VERSION_STRING}${PROJECT_STAGE_STRING}") 0091 0092 set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_RELEASE}) 0093 0094 if(DEFINED KEXI_STABLE AND "${KEXI_STABLE}" GREATER "0") 0095 message(STATUS "Kexi version \"${PROJECT_VERSION_STRING}\", distribution version \"${KEXI_DISTRIBUTION_VERSION}\"") 0096 else() 0097 message(STATUS "Kexi version \"${PROJECT_VERSION_STRING}\" (${PROJECT_VERSION}), distribution version \"${KEXI_DISTRIBUTION_VERSION}\"") 0098 endif() 0099 0100 # Define the generic version of the Kexi libraries here 0101 # This makes it easy to advance it when the next Kexi release comes. 0102 # 14 was the last GENERIC_PROJECT_LIB_VERSION_MAJOR of the previous Kexi series 0103 # (2.x) so we're starting with 15 in 3.x series. 0104 if(PROJECT_STABLE_VERSION_MAJOR EQUAL 3) 0105 math(EXPR GENERIC_PROJECT_LIB_VERSION_MAJOR "${PROJECT_STABLE_VERSION_MINOR} + 15") 0106 else() 0107 # let's make sure we won't forget to update the "15" 0108 message(FATAL_ERROR "Reminder: please update offset == 15 used to compute GENERIC_PROJECT_LIB_VERSION_MAJOR to something bigger") 0109 endif() 0110 set(GENERIC_PROJECT_LIB_VERSION "${GENERIC_PROJECT_LIB_VERSION_MAJOR}.0.0") 0111 set(GENERIC_PROJECT_LIB_SOVERSION "${GENERIC_PROJECT_LIB_VERSION_MAJOR}") 0112 0113 unset(PROJECT_STAGE_STRING)