49 lines
1.7 KiB
CMake
49 lines
1.7 KiB
CMake
|
# 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()
|