|
|
@@ -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
|
|
|
+)
|
|
|
+
|