[Cmake-commits] CMake branch, master, updated. v3.11.1-693-g7de29da

Kitware Robot kwrobot at kitware.com
Thu May 3 17:25:07 EDT 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  7de29da7c49da68aee421c646a676422f3b9d563 (commit)
       via  af1c48871cedc29eb0dc773556c606c670df55ee (commit)
      from  f1aedbf99acf21bbe9f2d766be8d159bd397cc89 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7de29da7c49da68aee421c646a676422f3b9d563
commit 7de29da7c49da68aee421c646a676422f3b9d563
Merge: f1aedbf af1c488
Author:     Craig Scott <craig.scott at crascit.com>
AuthorDate: Thu May 3 21:17:33 2018 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Thu May 3 17:18:38 2018 -0400

    Merge topic 'feature/cpack-default-package-version'
    
    af1c48871c CPack: Use project version as default for `CPACK_PACKAGE_VERSION`
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Acked-by: Harry Mallon <hjmallon at gmail.com>
    Merge-request: !2020


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=af1c48871cedc29eb0dc773556c606c670df55ee
commit af1c48871cedc29eb0dc773556c606c670df55ee
Author:     Alex Turbov <i.zaufi at gmail.com>
AuthorDate: Sun Apr 29 17:09:40 2018 +0300
Commit:     Craig Scott <craig.scott at crascit.com>
CommitDate: Thu May 3 08:26:03 2018 +1000

    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.

diff --git a/Help/command/project.rst b/Help/command/project.rst
index e46dd69..c1de057 100644
--- a/Help/command/project.rst
+++ b/Help/command/project.rst
@@ -76,8 +76,9 @@ call exists CMake will implicitly add one to the top that enables the
 default languages (``C`` and ``CXX``).  The name of the project set in
 the top level ``CMakeLists.txt`` file is available from the
 :variable:`CMAKE_PROJECT_NAME` variable, its description from
-:variable:`CMAKE_PROJECT_DESCRIPTION` and its homepage URL from
-:variable:`CMAKE_PROJECT_HOMEPAGE_URL`.
+:variable:`CMAKE_PROJECT_DESCRIPTION`, its homepage URL from
+:variable:`CMAKE_PROJECT_HOMEPAGE_URL` and its version from
+:variable:`CMAKE_PROJECT_VERSION`.
 
 .. note::
   Call the :command:`cmake_minimum_required` command at the beginning
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 44271c1..7636305 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -69,6 +69,11 @@ Variables that Provide Information
    /variable/CMAKE_PROJECT_DESCRIPTION
    /variable/CMAKE_PROJECT_HOMEPAGE_URL
    /variable/CMAKE_PROJECT_NAME
+   /variable/CMAKE_PROJECT_VERSION
+   /variable/CMAKE_PROJECT_VERSION_MAJOR
+   /variable/CMAKE_PROJECT_VERSION_MINOR
+   /variable/CMAKE_PROJECT_VERSION_PATCH
+   /variable/CMAKE_PROJECT_VERSION_TWEAK
    /variable/CMAKE_RANLIB
    /variable/CMAKE_ROOT
    /variable/CMAKE_SCRIPT_MODE_FILE
diff --git a/Help/release/dev/cpack-use-project-version.rst b/Help/release/dev/cpack-use-project-version.rst
new file mode 100644
index 0000000..b17754a
--- /dev/null
+++ b/Help/release/dev/cpack-use-project-version.rst
@@ -0,0 +1,10 @@
+cpack-use-project-version
+-------------------------
+
+* Introduce :variable:`CMAKE_PROJECT_VERSION` and the corresponding components:
+  :variable:`CMAKE_PROJECT_VERSION_MAJOR`, :variable:`CMAKE_PROJECT_VERSION_MINOR`,
+  :variable:`CMAKE_PROJECT_VERSION_PATCH` and :variable:`CMAKE_PROJECT_VERSION_TWEAK`.
+
+* :module:`CPack` module use :variable:`CMAKE_PROJECT_VERSION_MAJOR`,
+  :variable:`CMAKE_PROJECT_VERSION_MINOR` and :variable:`CMAKE_PROJECT_VERSION_PATCH`
+  to initialize corresponding CPack variables.
diff --git a/Help/variable/CMAKE_PROJECT_VERSION.rst b/Help/variable/CMAKE_PROJECT_VERSION.rst
new file mode 100644
index 0000000..4f8f556
--- /dev/null
+++ b/Help/variable/CMAKE_PROJECT_VERSION.rst
@@ -0,0 +1,35 @@
+CMAKE_PROJECT_VERSION
+---------------------
+
+The version of the top level project.
+
+This variable holds the version of the project as specified in the top
+level CMakeLists.txt file by a :command:`project` command.  In the event that
+the top level CMakeLists.txt contains multiple :command:`project` calls,
+the most recently called one from that top level CMakeLists.txt will determine
+the value that ``CMAKE_PROJECT_VERSION`` contains.  For example, consider
+the following top level CMakeLists.txt:
+
+.. code-block:: cmake
+
+  cmake_minimum_required(VERSION 3.0)
+  project(First VERSION 1.2.3)
+  project(Second VERSION 3.4.5)
+  add_subdirectory(sub)
+  project(Third VERSION 6.7.8)
+
+And ``sub/CMakeLists.txt`` with the following contents:
+
+.. code-block:: cmake
+
+  project(SubProj VERSION 1)
+  message("CMAKE_PROJECT_VERSION = ${CMAKE_PROJECT_VERSION}")
+
+The most recently seen :command:`project` command from the top level
+CMakeLists.txt would be ``project(Second ...)``, so this will print::
+
+  CMAKE_PROJECT_VERSION = 3.4.5
+
+To obtain the version from the most recent call to :command:`project` in
+the current directory scope or above, see the :variable:`PROJECT_VERSION`
+variable.
diff --git a/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst b/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
new file mode 100644
index 0000000..f1001ac
--- /dev/null
+++ b/Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
@@ -0,0 +1,9 @@
+CMAKE_PROJECT_VERSION_MAJOR
+---------------------------
+
+The major version of the top level project.
+
+This variable holds the major version of the project as specified in the top
+level CMakeLists.txt file by a :command:`project` command. Please see
+:variable:`CMAKE_PROJECT_VERSION` documentation for the behavior when
+multiple :command:`project` commands are used in the sources.
diff --git a/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst b/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
new file mode 100644
index 0000000..13202be
--- /dev/null
+++ b/Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
@@ -0,0 +1,9 @@
+CMAKE_PROJECT_VERSION_MINOR
+---------------------------
+
+The minor version of the top level project.
+
+This variable holds the minor version of the project as specified in the top
+level CMakeLists.txt file by a :command:`project` command. Please see
+:variable:`CMAKE_PROJECT_VERSION` documentation for the behavior when
+multiple :command:`project` commands are used in the sources.
diff --git a/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst b/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
new file mode 100644
index 0000000..b8570d9
--- /dev/null
+++ b/Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
@@ -0,0 +1,9 @@
+CMAKE_PROJECT_VERSION_PATCH
+---------------------------
+
+The patch version of the top level project.
+
+This variable holds the patch version of the project as specified in the top
+level CMakeLists.txt file by a :command:`project` command. Please see
+:variable:`CMAKE_PROJECT_VERSION` documentation for the behavior when
+multiple :command:`project` commands are used in the sources.
diff --git a/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst b/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
new file mode 100644
index 0000000..e1ad4be
--- /dev/null
+++ b/Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
@@ -0,0 +1,9 @@
+CMAKE_PROJECT_VERSION_TWEAK
+---------------------------
+
+The tweak version of the top level project.
+
+This variable holds the tweak version of the project as specified in the top
+level CMakeLists.txt file by a :command:`project` command. Please see
+:variable:`CMAKE_PROJECT_VERSION` documentation for the behavior when
+multiple :command:`project` commands are used in the sources.
diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake
index 3ff8be6..9bd13c3 100644
--- a/Modules/CPack.cmake
+++ b/Modules/CPack.cmake
@@ -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
diff --git a/Source/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx
index 6ddb0b8..a25bd6b 100644
--- a/Source/cmProjectCommand.cxx
+++ b/Source/cmProjectCommand.cxx
@@ -249,6 +249,12 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args,
     vv = projectName + "_VERSION_TWEAK";
     this->Makefile->AddDefinition("PROJECT_VERSION_TWEAK", vb[3]);
     this->Makefile->AddDefinition(vv, vb[3]);
+    // Also, try set top level variables
+    TopLevelCMakeVarCondSet("CMAKE_PROJECT_VERSION", vs.c_str());
+    TopLevelCMakeVarCondSet("CMAKE_PROJECT_VERSION_MAJOR", vb[0]);
+    TopLevelCMakeVarCondSet("CMAKE_PROJECT_VERSION_MINOR", vb[1]);
+    TopLevelCMakeVarCondSet("CMAKE_PROJECT_VERSION_PATCH", vb[2]);
+    TopLevelCMakeVarCondSet("CMAKE_PROJECT_VERSION_TWEAK", vb[3]);
   } else if (cmp0048 != cmPolicies::OLD) {
     // Set project VERSION variables to empty
     std::vector<std::string> vv;
@@ -262,6 +268,13 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args,
     vv.push_back(projectName + "_VERSION_MINOR");
     vv.push_back(projectName + "_VERSION_PATCH");
     vv.push_back(projectName + "_VERSION_TWEAK");
+    if (this->Makefile->IsRootMakefile()) {
+      vv.push_back("CMAKE_PROJECT_VERSION");
+      vv.push_back("CMAKE_PROJECT_VERSION_MAJOR");
+      vv.push_back("CMAKE_PROJECT_VERSION_MINOR");
+      vv.push_back("CMAKE_PROJECT_VERSION_PATCH");
+      vv.push_back("CMAKE_PROJECT_VERSION_TWEAK");
+    }
     std::string vw;
     for (std::string const& i : vv) {
       const char* v = this->Makefile->GetDefinition(i);
@@ -286,36 +299,14 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args,
     this->Makefile->AddDefinition("PROJECT_DESCRIPTION", description.c_str());
     this->Makefile->AddDefinition(projectName + "_DESCRIPTION",
                                   description.c_str());
-    // Set the CMAKE_PROJECT_DESCRIPTION variable to be the highest-level
-    // project name in the tree. If there are two project commands
-    // in the same CMakeLists.txt file, and it is the top level
-    // CMakeLists.txt file, then go with the last one.
-    if (!this->Makefile->GetDefinition("CMAKE_PROJECT_DESCRIPTION") ||
-        (this->Makefile->IsRootMakefile())) {
-      this->Makefile->AddDefinition("CMAKE_PROJECT_DESCRIPTION",
-                                    description.c_str());
-      this->Makefile->AddCacheDefinition(
-        "CMAKE_PROJECT_DESCRIPTION", description.c_str(),
-        "Value Computed by CMake", cmStateEnums::STATIC);
-    }
+    TopLevelCMakeVarCondSet("CMAKE_PROJECT_DESCRIPTION", description.c_str());
   }
 
   if (haveHomepage) {
     this->Makefile->AddDefinition("PROJECT_HOMEPAGE_URL", homepage.c_str());
     this->Makefile->AddDefinition(projectName + "_HOMEPAGE_URL",
                                   homepage.c_str());
-    // Set the CMAKE_PROJECT_HOMEPAGE_URL variable to be the highest-level
-    // project name in the tree. If there are two project commands
-    // in the same CMakeLists.txt file, and it is the top level
-    // CMakeLists.txt file, then go with the last one.
-    if (!this->Makefile->GetDefinition("CMAKE_PROJECT_HOMEPAGE_URL") ||
-        (this->Makefile->IsRootMakefile())) {
-      this->Makefile->AddDefinition("CMAKE_PROJECT_HOMEPAGE_URL",
-                                    homepage.c_str());
-      this->Makefile->AddCacheDefinition(
-        "CMAKE_PROJECT_HOMEPAGE_URL", homepage.c_str(),
-        "Value Computed by CMake", cmStateEnums::STATIC);
-    }
+    TopLevelCMakeVarCondSet("CMAKE_PROJECT_HOMEPAGE_URL", homepage.c_str());
   }
 
   if (languages.empty()) {
@@ -338,3 +329,18 @@ bool cmProjectCommand::InitialPass(std::vector<std::string> const& args,
   }
   return true;
 }
+
+void cmProjectCommand::TopLevelCMakeVarCondSet(const char* const name,
+                                               const char* const value)
+{
+  // Set the CMAKE_PROJECT_XXX variable to be the highest-level
+  // project name in the tree. If there are two project commands
+  // in the same CMakeLists.txt file, and it is the top level
+  // CMakeLists.txt file, then go with the last one.
+  if (!this->Makefile->GetDefinition(name) ||
+      (this->Makefile->IsRootMakefile())) {
+    this->Makefile->AddDefinition(name, value);
+    this->Makefile->AddCacheDefinition(name, value, "Value Computed by CMake",
+                                       cmStateEnums::STATIC);
+  }
+}
diff --git a/Source/cmProjectCommand.h b/Source/cmProjectCommand.h
index 80fa235..365d448 100644
--- a/Source/cmProjectCommand.h
+++ b/Source/cmProjectCommand.h
@@ -34,6 +34,9 @@ public:
    */
   bool InitialPass(std::vector<std::string> const& args,
                    cmExecutionStatus& status) override;
+
+private:
+  void TopLevelCMakeVarCondSet(const char* name, const char* value);
 };
 
 #endif
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index b11cf03..ea64646 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -951,6 +951,44 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
     endif()
   endif()
 
+  if(CTEST_TEST_CPACK)
+    add_test(CPackUseDefaultVersion ${CMAKE_CTEST_COMMAND}
+      --build-and-test
+      "${CMake_SOURCE_DIR}/Tests/CPackUseDefaultVersion"
+      "${CMake_BINARY_DIR}/Tests/CPackUseDefaultVersion"
+      ${build_generator_args}
+      --build-project CPackUseDefaultVersion
+      --build-two-config
+      --build-options ${build_options}
+        ${CPackUseDefaultVersion_BUILD_OPTIONS})
+    set_tests_properties(CPackUseDefaultVersion PROPERTIES PASS_REGULAR_EXPRESSION "CPACK_PACKAGE_VERSION=0\\.1\\.1")
+    list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackUseDefaultVersion")
+
+    add_test(CPackUseProjectVersion ${CMAKE_CTEST_COMMAND}
+      --build-and-test
+      "${CMake_SOURCE_DIR}/Tests/CPackUseProjectVersion"
+      "${CMake_BINARY_DIR}/Tests/CPackUseProjectVersion"
+      ${build_generator_args}
+      --build-project CPackUseProjectVersion
+      --build-two-config
+      --build-options ${build_options}
+        ${CPackUseProjectVersion_BUILD_OPTIONS})
+    set_tests_properties(CPackUseProjectVersion PROPERTIES PASS_REGULAR_EXPRESSION "CPACK_PACKAGE_VERSION=1\\.2\\.3")
+    list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackUseProjectVersion")
+
+    add_test(CPackUseShortProjectVersion ${CMAKE_CTEST_COMMAND}
+      --build-and-test
+      "${CMake_SOURCE_DIR}/Tests/CPackUseShortProjectVersion"
+      "${CMake_BINARY_DIR}/Tests/CPackUseShortProjectVersion"
+      ${build_generator_args}
+      --build-project CPackUseShortProjectVersion
+      --build-two-config
+      --build-options ${build_options}
+        ${CPackUseProjectVersion_BUILD_OPTIONS})
+    set_tests_properties(CPackUseShortProjectVersion PROPERTIES PASS_REGULAR_EXPRESSION "CPACK_PACKAGE_VERSION=2")
+    list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CPackUseShortProjectVersion")
+  endif()
+
   if(CTEST_RUN_CPackComponents)
     set(CPackComponents_BUILD_OPTIONS)
     if(APPLE)
diff --git a/Tests/CPackUseDefaultVersion/CMakeLists.txt b/Tests/CPackUseDefaultVersion/CMakeLists.txt
new file mode 100644
index 0000000..9f21f3a
--- /dev/null
+++ b/Tests/CPackUseDefaultVersion/CMakeLists.txt
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 3.2)
+project(CPackUseProjectVersion NONE)
+
+include(CPack)
+
+message("CPACK_PACKAGE_VERSION=${CPACK_PACKAGE_VERSION}")
diff --git a/Tests/CPackUseProjectVersion/CMakeLists.txt b/Tests/CPackUseProjectVersion/CMakeLists.txt
new file mode 100644
index 0000000..d4770ae
--- /dev/null
+++ b/Tests/CPackUseProjectVersion/CMakeLists.txt
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 3.2)
+project(CPackUseProjectVersion VERSION 1.2.3 LANGUAGES NONE)
+
+include(CPack)
+
+message("CPACK_PACKAGE_VERSION=${CPACK_PACKAGE_VERSION}")
diff --git a/Tests/CPackUseShortProjectVersion/CMakeLists.txt b/Tests/CPackUseShortProjectVersion/CMakeLists.txt
new file mode 100644
index 0000000..855bc64
--- /dev/null
+++ b/Tests/CPackUseShortProjectVersion/CMakeLists.txt
@@ -0,0 +1,6 @@
+cmake_minimum_required(VERSION 3.2)
+project(CPackUseProjectVersion VERSION 2 LANGUAGES NONE)
+
+include(CPack)
+
+message("CPACK_PACKAGE_VERSION=${CPACK_PACKAGE_VERSION}")

-----------------------------------------------------------------------

Summary of changes:
 Help/command/project.rst                           |    5 +-
 Help/manual/cmake-variables.7.rst                  |    5 ++
 Help/release/dev/cpack-use-project-version.rst     |   10 ++++
 ...T_DESCRIPTION.rst => CMAKE_PROJECT_VERSION.rst} |   26 +++++-----
 Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst      |    9 ++++
 Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst      |    9 ++++
 Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst      |    9 ++++
 Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst      |    9 ++++
 Modules/CPack.cmake                                |   53 ++++++++++++++++---
 Source/cmProjectCommand.cxx                        |   54 +++++++++++---------
 Source/cmProjectCommand.h                          |    3 ++
 Tests/CMakeLists.txt                               |   38 ++++++++++++++
 Tests/CPackUseDefaultVersion/CMakeLists.txt        |    6 +++
 Tests/CPackUseProjectVersion/CMakeLists.txt        |    6 +++
 Tests/CPackUseShortProjectVersion/CMakeLists.txt   |    6 +++
 15 files changed, 201 insertions(+), 47 deletions(-)
 create mode 100644 Help/release/dev/cpack-use-project-version.rst
 copy Help/variable/{CMAKE_PROJECT_DESCRIPTION.rst => CMAKE_PROJECT_VERSION.rst} (51%)
 create mode 100644 Help/variable/CMAKE_PROJECT_VERSION_MAJOR.rst
 create mode 100644 Help/variable/CMAKE_PROJECT_VERSION_MINOR.rst
 create mode 100644 Help/variable/CMAKE_PROJECT_VERSION_PATCH.rst
 create mode 100644 Help/variable/CMAKE_PROJECT_VERSION_TWEAK.rst
 create mode 100644 Tests/CPackUseDefaultVersion/CMakeLists.txt
 create mode 100644 Tests/CPackUseProjectVersion/CMakeLists.txt
 create mode 100644 Tests/CPackUseShortProjectVersion/CMakeLists.txt


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list