From 88a1392270e38ec6d47f33d8ab5345a16b1b0310 Mon Sep 17 00:00:00 2001 From: Hermann von Kleist Date: Wed, 17 Jan 2024 16:19:22 +0100 Subject: FindMatlab: use correct registry view when extracting versions --- Modules/FindMatlab.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake index 24703a3..0e79f58 100644 --- a/Modules/FindMatlab.cmake +++ b/Modules/FindMatlab.cmake @@ -481,6 +481,7 @@ function(matlab_extract_all_installed_versions_from_registry win64 matlab_versio cmake_host_system_information(RESULT _reg QUERY WINDOWS_REGISTRY "HKLM/SOFTWARE/Mathworks/${_installation_type}/${CMAKE_MATCH_1}" VALUE "MATLABROOT" + VIEW ${_view} ) _Matlab_VersionInfoXML("${_reg}" _matlab_version_tmp) -- cgit v0.12 From 7060e2135c07515301de540fd65b106c1a6758c3 Mon Sep 17 00:00:00 2001 From: Hermann von Kleist Date: Wed, 17 Jan 2024 16:24:11 +0100 Subject: FindMatlab: Restore support for finding EXACT major.minor version By comparing major.minor, the behavior approximately matches pre-3.28 behavior. Fixes: #25605 --- Modules/FindMatlab.cmake | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake index 0e79f58..609cd4e 100644 --- a/Modules/FindMatlab.cmake +++ b/Modules/FindMatlab.cmake @@ -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() -- cgit v0.12