From ba74c58ca45071178b37f24f254039ea53c56cdc Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Wed, 31 Aug 2022 19:03:29 -0400 Subject: FindMatlab: add'l check that Matlab test version file exists this last resort check is for some HPC with "module load matlab" not enacted that fail to catch in earlier checks. That would error CMake configure even if find_package(Matlab) is not REQUIRED --- Modules/FindMatlab.cmake | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake index 48ef5eb..1d88985 100644 --- a/Modules/FindMatlab.cmake +++ b/Modules/FindMatlab.cmake @@ -843,6 +843,15 @@ function(matlab_get_version_from_matlab_run matlab_binary_program matlab_list_ve endif() endif() + if(NOT EXISTS "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp") + # last resort check as some HPC with "module load matlab" not enacted fail to catch in earlier checks + # and error CMake configure even if find_package(Matlab) is not REQUIRED + if(MATLAB_FIND_DEBUG) + message(WARNING "[MATLAB] Unable to determine the version of Matlab. The version log file does not exist.") + endif() + return() + endif() + # if successful, read back the log file(READ "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp" _matlab_version_from_cmd) file(REMOVE "${_matlab_temporary_folder}/matlabVersionLog.cmaketmp") -- cgit v0.12 From 72dd6806095a8a8b8ef2a4e55e476014882a62fe Mon Sep 17 00:00:00 2001 From: Michael Hirsch Date: Sun, 28 Aug 2022 14:34:26 -0400 Subject: FindMatlab: follow CMP0074 _ROOT search behavior --- Modules/FindMatlab.cmake | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake index 1d88985..ec2c345 100644 --- a/Modules/FindMatlab.cmake +++ b/Modules/FindMatlab.cmake @@ -85,10 +85,18 @@ Module Input Variables Users or projects may set the following variables to configure the module behavior: +:variable:`Matlab_ROOT <_ROOT>` + .. versionadded:: 3.25 + + Default value for :variable:`Matlab_ROOT_DIR`, the root of the Matlab + installation. + :variable:`Matlab_ROOT_DIR` - the root of the Matlab installation. + The root of the Matlab installation. + :variable:`MATLAB_FIND_DEBUG` outputs debug information + :variable:`MATLAB_ADDITIONAL_VERSIONS` additional versions of Matlab for the automatic retrieval of the installed versions. @@ -1581,6 +1589,13 @@ endfunction() # this variable will get all Matlab installations found in the current system. set(_matlab_possible_roots) +if(NOT DEFINED Matlab_ROOT AND DEFINED ENV{Matlab_ROOT}) + set(Matlab_ROOT $ENV{Matlab_ROOT}) +endif() +if(DEFINED Matlab_ROOT) + set(Matlab_ROOT_DIR ${Matlab_ROOT}) +endif() + if(Matlab_ROOT_DIR) # if the user specifies a possible root, we keep this one -- cgit v0.12