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