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)