[Cmake-commits] CMake branch, master, updated. v3.8.0-991-gf0ae821

Kitware Robot kwrobot at kitware.com
Thu Apr 27 09:15:02 EDT 2017


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  f0ae821681a0a0b4f411a0feb4a6f6e458475999 (commit)
       via  993ebdc72d5e7303008ecc2fc42b151b630a9ca2 (commit)
      from  6887c1174f6a16d6d51189954cb3b0dbf49a971f (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=f0ae821681a0a0b4f411a0feb4a6f6e458475999
commit f0ae821681a0a0b4f411a0feb4a6f6e458475999
Merge: 6887c11 993ebdc
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Apr 27 13:05:00 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Thu Apr 27 09:05:03 2017 -0400

    Merge topic 'cpackifw-framework-version'
    
    993ebdc7 CPackIFW: Framework version
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !761


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=993ebdc72d5e7303008ecc2fc42b151b630a9ca2
commit 993ebdc72d5e7303008ecc2fc42b151b630a9ca2
Author:     Konstantin Podsvirov <konstantin at podsvirov.pro>
AuthorDate: Sat Apr 22 03:20:43 2017 +0300
Commit:     Konstantin Podsvirov <konstantin at podsvirov.pro>
CommitDate: Tue Apr 25 21:43:21 2017 +0300

    CPackIFW: Framework version
    
    Improved algorithm for finding the version of QtIFW tools.

diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake
index 099dd1c..b4a6dc6 100644
--- a/Modules/CPackIFW.cmake
+++ b/Modules/CPackIFW.cmake
@@ -717,21 +717,58 @@ set(CPackIFW_CMake_INCLUDED 1)
 # Framework version
 #=============================================================================
 
-if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND CPACK_IFW_DEVTOOL_EXECUTABLE)
-  execute_process(COMMAND
-    "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}" --framework-version
-    OUTPUT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION)
-  if(CPACK_IFW_FRAMEWORK_VERSION)
-    string(REPLACE " " ""
-      CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION}")
-    string(REPLACE "\t" ""
-      CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION}")
-    string(REPLACE "\n" ""
-      CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION}")
-    if(CPACK_IFW_VERBOSE)
-      message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} version")
+set(CPACK_IFW_FRAMEWORK_VERSION_FORCED ""
+  CACHE STRING "The forced version of used QtIFW tools")
+mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+set(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT 1
+  CACHE STRING "The timeout to return QtIFW framework version string from \"installerbase\" executable")
+mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT)
+if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+  set(CPACK_IFW_FRAMEWORK_VERSION)
+  # Invoke version from "installerbase" executable
+  foreach(_ifw_version_argument --framework-version --version)
+    if(NOT CPACK_IFW_FRAMEWORK_VERSION)
+      execute_process(COMMAND
+        "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}" ${_ifw_version_argument}
+        TIMEOUT ${CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT}
+        RESULT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_RESULT
+        OUTPUT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION_OUTPUT
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+        ENCODING UTF8)
+      if(NOT CPACK_IFW_FRAMEWORK_VERSION_RESULT AND CPACK_IFW_FRAMEWORK_VERSION_OUTPUT)
+        string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
+          CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION_OUTPUT}")
+        if(CPACK_IFW_FRAMEWORK_VERSION)
+          if("${_ifw_version_argument}" STREQUAL "--framework-version")
+            set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
+          elseif("${_ifw_version_argument}" STREQUAL "--version")
+            set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_FRAMEWORK_VERSION")
+          endif()
+        endif()
+      endif()
+    endif()
+  endforeach()
+  # Finaly try to get version from executable path
+  if(NOT CPACK_IFW_FRAMEWORK_VERSION)
+    string(REGEX MATCH "[0-9]+(\\.[0-9]+)*"
+      CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_INSTALLERBASE_EXECUTABLE}")
+    if(CPACK_IFW_FRAMEWORK_VERSION)
+      set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "INSTALLERBASE_PATH")
     endif()
   endif()
+elseif(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+  set(CPACK_IFW_FRAMEWORK_VERSION ${CPACK_IFW_FRAMEWORK_VERSION_FORCED})
+  set(CPACK_IFW_FRAMEWORK_VERSION_SOURCE "FORCED")
+endif()
+if(CPACK_IFW_VERBOSE)
+  if(CPACK_IFW_FRAMEWORK_VERSION AND CPACK_IFW_FRAMEWORK_VERSION_FORCED)
+    message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} (forced) version")
+  elseif(CPACK_IFW_FRAMEWORK_VERSION)
+    message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} version")
+  endif()
+endif()
+if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION)
+  message(WARNING "Could not detect QtIFW tools version. Set used version to variable \"CPACK_IFW_FRAMEWORK_VERSION_FORCED\" manualy.")
 endif()
 
 #=============================================================================

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

Summary of changes:
 Modules/CPackIFW.cmake |   63 ++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 50 insertions(+), 13 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list