# 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()