FindMatlab: Fix version selection if a version is given

Fixes: #22377
This commit is contained in:
Alexander Neumann
2021-07-02 16:24:20 +02:00
committed by Brad King
parent 5bd94332c7
commit 7fdd5128b1

View File

@@ -1572,6 +1572,29 @@ if(_numbers_of_matlab_roots GREATER 0)
list(GET _matlab_possible_roots ${_matlab_or_mcr_index} Matlab_Or_MCR)
list(GET _matlab_possible_roots ${_list_index} Matlab_VERSION_STRING)
list(GET _matlab_possible_roots ${_matlab_root_dir_index} Matlab_ROOT_DIR)
elseif(DEFINED Matlab_FIND_VERSION)
foreach(_matlab_root_index RANGE 1 ${_numbers_of_matlab_roots} 3)
list(GET _matlab_possible_roots ${_matlab_root_index} _matlab_root_version)
if(_matlab_root_version VERSION_GREATER_EQUAL Matlab_FIND_VERSION)
set(_list_index ${_matlab_root_index})
break()
endif()
endforeach()
if(_list_index LESS 0)
set(_list_index 1)
endif()
math(EXPR _matlab_or_mcr_index "${_list_index} - 1")
math(EXPR _matlab_root_dir_index "${_list_index} + 1")
list(GET _matlab_possible_roots ${_matlab_or_mcr_index} Matlab_Or_MCR)
list(GET _matlab_possible_roots ${_list_index} Matlab_VERSION_STRING)
list(GET _matlab_possible_roots ${_matlab_root_dir_index} Matlab_ROOT_DIR)
# adding a warning in case of ambiguity
if(_numbers_of_matlab_roots GREATER 3 AND MATLAB_FIND_DEBUG)
message(WARNING "[MATLAB] Found several distributions of Matlab. Setting the current version to ${Matlab_VERSION_STRING} (located ${Matlab_ROOT_DIR})."
" If this is not the desired behavior, use the EXACT keyword or provide the -DMatlab_ROOT_DIR=... on the command line")
endif()
else()
list(GET _matlab_possible_roots 0 Matlab_Or_MCR)
list(GET _matlab_possible_roots 1 Matlab_VERSION_STRING)