cmake/Modules/Internal/CPack/CPackExternal.cmake

54 lines
1.6 KiB
CMake
Raw Normal View History

2018-10-28 12:09:07 +01:00
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
2018-11-29 20:27:00 +01:00
if(NOT "${CPACK_EXTERNAL_REQUESTED_VERSIONS}" STREQUAL "")
2018-10-28 12:09:07 +01:00
unset(_found_major)
2018-11-29 20:27:00 +01:00
foreach(_req_version IN LISTS CPACK_EXTERNAL_REQUESTED_VERSIONS)
2018-10-28 12:09:07 +01:00
if(_req_version MATCHES "^([0-9]+)\\.([0-9]+)$")
set(_req_major "${CMAKE_MATCH_1}")
set(_req_minor "${CMAKE_MATCH_2}")
2018-11-29 20:27:00 +01:00
foreach(_known_version IN LISTS CPACK_EXTERNAL_KNOWN_VERSIONS)
2018-10-28 12:09:07 +01:00
string(REGEX MATCH
"^([0-9]+)\\.([0-9]+)$"
_known_version_dummy
"${_known_version}"
)
set(_known_major "${CMAKE_MATCH_1}")
set(_known_minor "${CMAKE_MATCH_2}")
if(_req_major EQUAL _known_major AND NOT _known_minor LESS _req_minor)
set(_found_major "${_known_major}")
set(_found_minor "${_known_minor}")
break()
endif()
endforeach()
if(DEFINED _found_major)
break()
endif()
endif()
endforeach()
if(DEFINED _found_major)
2018-11-29 20:27:00 +01:00
set(CPACK_EXTERNAL_SELECTED_MAJOR "${_found_major}")
set(CPACK_EXTERNAL_SELECTED_MINOR "${_found_minor}")
set(CPACK_EXTERNAL_SELECTED_VERSION "${_found_major}.${_found_minor}")
2018-10-28 12:09:07 +01:00
else()
message(FATAL_ERROR
2018-11-29 20:27:00 +01:00
"Could not find a suitable version in CPACK_EXTERNAL_REQUESTED_VERSIONS"
2018-10-28 12:09:07 +01:00
)
endif()
else()
2018-11-29 20:27:00 +01:00
list(GET CPACK_EXTERNAL_KNOWN_VERSIONS 0 CPACK_EXTERNAL_SELECTED_VERSION)
2018-10-28 12:09:07 +01:00
string(REGEX MATCH
"^([0-9]+)\\.([0-9]+)$"
_dummy
2018-11-29 20:27:00 +01:00
"${CPACK_EXTERNAL_SELECTED_VERSION}"
2018-10-28 12:09:07 +01:00
)
2018-11-29 20:27:00 +01:00
set(CPACK_EXTERNAL_SELECTED_MAJOR "${CMAKE_MATCH_1}")
set(CPACK_EXTERNAL_SELECTED_MINOR "${CMAKE_MATCH_2}")
2018-10-28 12:09:07 +01:00
endif()