mirror of
https://github.com/reactos/CMake.git
synced 2024-11-24 12:09:48 +00:00
CPackIFW: Framework version
Improved algorithm for finding the version of QtIFW tools.
This commit is contained in:
parent
3cb7048b52
commit
993ebdc72d
@ -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()
|
||||
|
||||
#=============================================================================
|
||||
|
Loading…
Reference in New Issue
Block a user