mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-21 06:00:51 -06:00
CPackIFW: Framework version
Improved algorithm for finding the version of QtIFW tools.
This commit is contained in:
@@ -717,21 +717,58 @@ set(CPackIFW_CMake_INCLUDED 1)
|
|||||||
# Framework version
|
# Framework version
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND CPACK_IFW_DEVTOOL_EXECUTABLE)
|
set(CPACK_IFW_FRAMEWORK_VERSION_FORCED ""
|
||||||
execute_process(COMMAND
|
CACHE STRING "The forced version of used QtIFW tools")
|
||||||
"${CPACK_IFW_INSTALLERBASE_EXECUTABLE}" --framework-version
|
mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_FORCED)
|
||||||
OUTPUT_VARIABLE CPACK_IFW_FRAMEWORK_VERSION)
|
set(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT 1
|
||||||
if(CPACK_IFW_FRAMEWORK_VERSION)
|
CACHE STRING "The timeout to return QtIFW framework version string from \"installerbase\" executable")
|
||||||
string(REPLACE " " ""
|
mark_as_advanced(CPACK_IFW_FRAMEWORK_VERSION_TIMEOUT)
|
||||||
CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION}")
|
if(CPACK_IFW_INSTALLERBASE_EXECUTABLE AND NOT CPACK_IFW_FRAMEWORK_VERSION_FORCED)
|
||||||
string(REPLACE "\t" ""
|
set(CPACK_IFW_FRAMEWORK_VERSION)
|
||||||
CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION}")
|
# Invoke version from "installerbase" executable
|
||||||
string(REPLACE "\n" ""
|
foreach(_ifw_version_argument --framework-version --version)
|
||||||
CPACK_IFW_FRAMEWORK_VERSION "${CPACK_IFW_FRAMEWORK_VERSION}")
|
if(NOT CPACK_IFW_FRAMEWORK_VERSION)
|
||||||
if(CPACK_IFW_VERBOSE)
|
execute_process(COMMAND
|
||||||
message(STATUS "Found QtIFW ${CPACK_IFW_FRAMEWORK_VERSION} version")
|
"${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()
|
||||||
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()
|
endif()
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user