CPack: Use project version as default for CPACK_PACKAGE_VERSION

* Introduce `CMAKE_PROJECT_VERSION` and the corresponsing components:
  `CMAKE_PROJECT_VERSION_MAJOR`, `CMAKE_PROJECT_VERSION_MINOR`,
  `CMAKE_PROJECT_VERSION_PATCH` and `CMAKE_PROJECT_VERSION_TWEAK`.

* `CPack` module use `CMAKE_PROJECT_VERSION_MAJOR`,
  `CMAKE_PROJECT_VERSION_MINOR` and `CMAKE_PROJECT_VERSION_PATCH`
  to initialize corresponsing CPack variables.
This commit is contained in:
Alex Turbov
2018-04-29 17:09:40 +03:00
committed by Craig Scott
parent 1925fe9fed
commit af1c48871c
15 changed files with 223 additions and 34 deletions

View File

@@ -80,15 +80,35 @@
#
# .. variable:: CPACK_PACKAGE_VERSION_MAJOR
#
# Package major Version. Default value is 0.
# Package major version. This variable will always be set, but its default
# value depends on whether or not version details were given to the
# :command:`project` command in the top level CMakeLists.txt file. If version
# details were given, the default value will be
# :variable:`CMAKE_PROJECT_VERSION_MAJOR`. If no version details were given,
# a default version of 0.1.1 will be assumed, leading to
# ``CPACK_PACKAGE_VERSION_MAJOR`` having a default value of 0.
#
# .. variable:: CPACK_PACKAGE_VERSION_MINOR
#
# Package minor Version. Default value is 1.
# Package minor version. The default value is determined based on whether or
# not version details were given to the :command:`project` command in the top
# level CMakeLists.txt file. If version details were given, the default
# value will be :variable:`CMAKE_PROJECT_VERSION_MINOR`, but if no minor
# version component was specified then ``CPACK_PACKAGE_VERSION_MINOR`` will be
# left unset. If no project version was given at all, a default version of
# 0.1.1 will be assumed, leading to ``CPACK_PACKAGE_VERSION_MINOR`` having a
# default value of 1.
#
# .. variable:: CPACK_PACKAGE_VERSION_PATCH
#
# Package patch Version. Default value is 1.
# Package patch version. The default value is determined based on whether or
# not version details were given to the :command:`project` command in the top
# level CMakeLists.txt file. If version details were given, the default
# value will be :variable:`CMAKE_PROJECT_VERSION_PATCH`, but if no patch
# version component was specified then ``CPACK_PACKAGE_VERSION_PATCH`` will be
# left unset. If no project version was given at all, a default version of
# 0.1.1 will be assumed, leading to ``CPACK_PACKAGE_VERSION_PATCH`` having a
# default value of 1.
#
# .. variable:: CPACK_PACKAGE_DESCRIPTION_FILE
#
@@ -368,11 +388,28 @@ endfunction()
# Set the package name
_cpack_set_default(CPACK_PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
_cpack_set_default(CPACK_PACKAGE_VERSION_MAJOR "0")
_cpack_set_default(CPACK_PACKAGE_VERSION_MINOR "1")
_cpack_set_default(CPACK_PACKAGE_VERSION_PATCH "1")
_cpack_set_default(CPACK_PACKAGE_VERSION
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
if(CMAKE_PROJECT_VERSION_MAJOR)
_cpack_set_default(CPACK_PACKAGE_VERSION_MAJOR "${CMAKE_PROJECT_VERSION_MAJOR}")
if(CMAKE_PROJECT_VERSION_MINOR)
_cpack_set_default(CPACK_PACKAGE_VERSION_MINOR "${CMAKE_PROJECT_VERSION_MINOR}")
if(CMAKE_PROJECT_VERSION_PATCH)
_cpack_set_default(CPACK_PACKAGE_VERSION_PATCH "${CMAKE_PROJECT_VERSION_PATCH}")
_cpack_set_default(CPACK_PACKAGE_VERSION
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
else()
_cpack_set_default(CPACK_PACKAGE_VERSION
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}")
endif()
else()
_cpack_set_default(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}")
endif()
else()
_cpack_set_default(CPACK_PACKAGE_VERSION_MAJOR "0")
_cpack_set_default(CPACK_PACKAGE_VERSION_MINOR "1")
_cpack_set_default(CPACK_PACKAGE_VERSION_PATCH "1")
_cpack_set_default(CPACK_PACKAGE_VERSION
"${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
endif()
_cpack_set_default(CPACK_PACKAGE_VENDOR "Humanity")
if(CMAKE_PROJECT_DESCRIPTION)
_cpack_set_default(CPACK_PACKAGE_DESCRIPTION_SUMMARY