diff options
Diffstat (limited to 'Modules/FindMatlab.cmake')
-rw-r--r-- | Modules/FindMatlab.cmake | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/Modules/FindMatlab.cmake b/Modules/FindMatlab.cmake new file mode 100644 index 000000000..1cdb07174 --- /dev/null +++ b/Modules/FindMatlab.cmake @@ -0,0 +1,120 @@ +# - this module looks for Matlab +# Defines: +# MATLAB_INCLUDE_DIR: include path for mex.h, engine.h +# MATLAB_LIBRARIES: required libraries: libmex, etc +# MATLAB_MEX_LIBRARY: path to libmex.lib +# MATLAB_MX_LIBRARY: path to libmx.lib +# MATLAB_ENG_LIBRARY: path to libeng.lib + +#============================================================================= +# Copyright 2005-2009 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +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") + IF(MATLAB_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}") + ENDIF(MATLAB_FIND_REQUIRED) + 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 +) + |