| # This module looks for MatlabMex compiler | |
| # Defines variables: | |
| # Matlab_DIR - Matlab root dir | |
| # Matlab_mex - path to mex compiler | |
| # Matlab_mexext - path to mexext | |
| if(MSVC) | |
| foreach(__ver "9.30" "7.14" "7.11" "7.10" "7.9" "7.8" "7.7") | |
| get_filename_component(__matlab_root "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\${__ver};MATLABROOT]" ABSOLUTE) | |
| if(__matlab_root) | |
| break() | |
| endif() | |
| endforeach() | |
| endif() | |
| if(APPLE) | |
| foreach(__ver "R2014b" "R2014a" "R2013b" "R2013a" "R2012b" "R2012a" "R2011b" "R2011a" "R2010b" "R2010a") | |
| if(EXISTS /Applications/MATLAB_${__ver}.app) | |
| set(__matlab_root /Applications/MATLAB_${__ver}.app) | |
| break() | |
| endif() | |
| endforeach() | |
| endif() | |
| if(UNIX) | |
| execute_process(COMMAND which matlab OUTPUT_STRIP_TRAILING_WHITESPACE | |
| OUTPUT_VARIABLE __out RESULT_VARIABLE __res) | |
| if(__res MATCHES 0) # Suppress `readlink` warning if `which` returned nothing | |
| execute_process(COMMAND which matlab COMMAND xargs readlink | |
| COMMAND xargs dirname COMMAND xargs dirname COMMAND xargs echo -n | |
| OUTPUT_VARIABLE __matlab_root OUTPUT_STRIP_TRAILING_WHITESPACE) | |
| endif() | |
| endif() | |
| find_path(Matlab_DIR NAMES bin/mex bin/mexext PATHS ${__matlab_root} | |
| DOC "Matlab directory" NO_DEFAULT_PATH) | |
| find_program(Matlab_mex NAMES mex mex.bat HINTS ${Matlab_DIR} PATH_SUFFIXES bin NO_DEFAULT_PATH) | |
| find_program(Matlab_mexext NAMES mexext mexext.bat HINTS ${Matlab_DIR} PATH_SUFFIXES bin NO_DEFAULT_PATH) | |
| include(FindPackageHandleStandardArgs) | |
| find_package_handle_standard_args(MatlabMex DEFAULT_MSG Matlab_mex Matlab_mexext) | |
| if(MATLABMEX_FOUND) | |
| mark_as_advanced(Matlab_mex Matlab_mexext) | |
| endif() | |