summaryrefslogtreecommitdiffstats
path: root/Modules/FindMatlab.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/FindMatlab.cmake')
-rw-r--r--Modules/FindMatlab.cmake108
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
+)
+