diff options
Diffstat (limited to 'Modules/FindMatlab.cmake')
-rw-r--r-- | Modules/FindMatlab.cmake | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake new file mode 100644 index 0000000..8a694c9 --- /dev/null +++ b/Modules/FindMatlab.cmake @@ -0,0 +1,108 @@ +# +# this module looks for Matlab +# +# Define +# MATLAB_INCLUDE_DIR points to the include path for mex.h, engine.h +# MATLAB_LIBRARIES list of libraries need: libmex.lib, libmx.lib and libeng.lib +# MATLAB_MEX_LIBRARY point to libmex.lib +# MATLAB_MX_LIBRARY point to libmx.lib +# MATLAB_ENG_LIBRARY point to libeng.lib + + +SET(MATLAB_FOUND 0) +IF(WIN32) + IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc60") + ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") + # Assume people are generally using 7.1, + # if using 7.0 need to link to: ../extern/lib/win32/microsoft/msvc70 + SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc71") + ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") + IF(${CMAKE_GENERATOR} MATCHES "Borland") + # Same here, there are also: bcc50 and bcc51 directories + SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/bcc54") + ELSE(${CMAKE_GENERATOR} MATCHES "Borland") + MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}") + ENDIF(${CMAKE_GENERATOR} MATCHES "Borland") + ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7") + ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6") + FIND_LIBRARY(MATLAB_MEX_LIBRARY + libmex + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_MX_LIBRARY + libmx + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_ENG_LIBRARY + libeng + ${MATLAB_ROOT} + ) + + FIND_PATH(MATLAB_INCLUDE_DIR + "mex.h" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/include" + ) +ELSE( WIN32 ) + IF(CMAKE_SIZEOF_VOID_P EQUAL 4) + # Regular x86 + SET(MATLAB_ROOT + /usr/local/matlab-7sp1/bin/glnx86/ + /opt/matlab-7sp1/bin/glnx86/ + $ENV{HOME}/matlab-7sp1/bin/glnx86/ + $ENV{HOME}/redhat-matlab/bin/glnx86/ + ) + ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4) + # AMD64: + SET(MATLAB_ROOT + /usr/local/matlab-7sp1/bin/glnxa64/ + /opt/matlab-7sp1/bin/glnxa64/ + $ENV{HOME}/matlab7_64/bin/glnxa64/ + $ENV{HOME}/matlab-7sp1/bin/glnxa64/ + $ENV{HOME}/redhat-matlab/bin/glnxa64/ + ) + ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4) + FIND_LIBRARY(MATLAB_MEX_LIBRARY + mex + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_MX_LIBRARY + mx + ${MATLAB_ROOT} + ) + FIND_LIBRARY(MATLAB_ENG_LIBRARY + eng + ${MATLAB_ROOT} + ) + FIND_PATH(MATLAB_INCLUDE_DIR + "mex.h" + "/usr/local/matlab-7sp1/extern/include/" + "/opt/matlab-7sp1/extern/include/" + "$ENV{HOME}/matlab-7sp1/extern/include/" + "$ENV{HOME}/redhat-matlab/extern/include/" + ) + +ENDIF(WIN32) + +# This is common to UNIX and Win32: +SET(MATLAB_LIBRARIES + ${MATLAB_MEX_LIBRARY} + ${MATLAB_MX_LIBRARY} + ${MATLAB_ENG_LIBRARY} +) + +IF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) + SET(MATLAB_FOUND 1) +ENDIF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES) + +MARK_AS_ADVANCED( + MATLAB_LIBRARIES + MATLAB_MEX_LIBRARY + MATLAB_MX_LIBRARY + MATLAB_ENG_LIBRARY + MATLAB_INCLUDE_DIR + MATLAB_FOUND + MATLAB_ROOT +) + |