FindMatlab: Restore support for finding EXACT major.minor version

By comparing major.minor, the behavior approximately matches pre-3.28
behavior.

Fixes: #25605
This commit is contained in:
Hermann von Kleist
2024-01-17 16:24:11 +01:00
committed by Brad King
parent 88a1392270
commit 7060e2135c

View File

@@ -1628,7 +1628,17 @@ set(Matlab_VERSION_STRING "NOTFOUND")
set(Matlab_Or_MCR "UNKNOWN")
if(_numbers_of_matlab_roots GREATER 0)
if(Matlab_FIND_VERSION_EXACT)
list(FIND _matlab_possible_roots ${Matlab_FIND_VERSION} _list_index)
set(_list_index -1)
foreach(_matlab_root_index RANGE 1 ${_numbers_of_matlab_roots} 3)
list(GET _matlab_possible_roots ${_matlab_root_index} _matlab_root_version)
# only the major.minor version is used
string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*" "\\1" _matlab_root_version "${_matlab_root_version}")
if(_matlab_root_version VERSION_EQUAL Matlab_FIND_VERSION)
set(_list_index ${_matlab_root_index})
break()
endif()
endforeach()
if(_list_index LESS 0)
set(_list_index 1)
endif()