Imported Upstream version 2.8.10.2
[platform/upstream/cmake.git] / Modules / FindMatlab.cmake
1 # - this module looks for Matlab
2 # Defines:
3 #  MATLAB_INCLUDE_DIR: include path for mex.h, engine.h
4 #  MATLAB_LIBRARIES:   required libraries: libmex, etc
5 #  MATLAB_MEX_LIBRARY: path to libmex.lib
6 #  MATLAB_MX_LIBRARY:  path to libmx.lib
7 #  MATLAB_ENG_LIBRARY: path to libeng.lib
8
9 #=============================================================================
10 # Copyright 2005-2009 Kitware, Inc.
11 #
12 # Distributed under the OSI-approved BSD License (the "License");
13 # see accompanying file Copyright.txt for details.
14 #
15 # This software is distributed WITHOUT ANY WARRANTY; without even the
16 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 # See the License for more information.
18 #=============================================================================
19 # (To distribute this file outside of CMake, substitute the full
20 #  License text for the above reference.)
21
22 set(MATLAB_FOUND 0)
23 if(WIN32)
24   if(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
25     set(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc60")
26   else()
27     if(${CMAKE_GENERATOR} MATCHES "Visual Studio 7")
28       # Assume people are generally using 7.1,
29       # if using 7.0 need to link to: ../extern/lib/win32/microsoft/msvc70
30       set(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc71")
31     else()
32       if(${CMAKE_GENERATOR} MATCHES "Borland")
33         # Same here, there are also: bcc50 and bcc51 directories
34         set(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/bcc54")
35       else()
36         if(MATLAB_FIND_REQUIRED)
37           message(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}")
38         endif()
39       endif()
40     endif()
41   endif()
42   find_library(MATLAB_MEX_LIBRARY
43     libmex
44     ${MATLAB_ROOT}
45     )
46   find_library(MATLAB_MX_LIBRARY
47     libmx
48     ${MATLAB_ROOT}
49     )
50   find_library(MATLAB_ENG_LIBRARY
51     libeng
52     ${MATLAB_ROOT}
53     )
54
55   find_path(MATLAB_INCLUDE_DIR
56     "mex.h"
57     "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/include"
58     )
59 else()
60   if(CMAKE_SIZEOF_VOID_P EQUAL 4)
61     # Regular x86
62     set(MATLAB_ROOT
63       /usr/local/matlab-7sp1/bin/glnx86/
64       /opt/matlab-7sp1/bin/glnx86/
65       $ENV{HOME}/matlab-7sp1/bin/glnx86/
66       $ENV{HOME}/redhat-matlab/bin/glnx86/
67       )
68   else()
69     # AMD64:
70     set(MATLAB_ROOT
71       /usr/local/matlab-7sp1/bin/glnxa64/
72       /opt/matlab-7sp1/bin/glnxa64/
73       $ENV{HOME}/matlab7_64/bin/glnxa64/
74       $ENV{HOME}/matlab-7sp1/bin/glnxa64/
75       $ENV{HOME}/redhat-matlab/bin/glnxa64/
76       )
77   endif()
78   find_library(MATLAB_MEX_LIBRARY
79     mex
80     ${MATLAB_ROOT}
81     )
82   find_library(MATLAB_MX_LIBRARY
83     mx
84     ${MATLAB_ROOT}
85     )
86   find_library(MATLAB_ENG_LIBRARY
87     eng
88     ${MATLAB_ROOT}
89     )
90   find_path(MATLAB_INCLUDE_DIR
91     "mex.h"
92     "/usr/local/matlab-7sp1/extern/include/"
93     "/opt/matlab-7sp1/extern/include/"
94     "$ENV{HOME}/matlab-7sp1/extern/include/"
95     "$ENV{HOME}/redhat-matlab/extern/include/"
96     )
97
98 endif()
99
100 # This is common to UNIX and Win32:
101 set(MATLAB_LIBRARIES
102   ${MATLAB_MEX_LIBRARY}
103   ${MATLAB_MX_LIBRARY}
104   ${MATLAB_ENG_LIBRARY}
105 )
106
107 if(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES)
108   set(MATLAB_FOUND 1)
109 endif()
110
111 mark_as_advanced(
112   MATLAB_LIBRARIES
113   MATLAB_MEX_LIBRARY
114   MATLAB_MX_LIBRARY
115   MATLAB_ENG_LIBRARY
116   MATLAB_INCLUDE_DIR
117   MATLAB_FOUND
118   MATLAB_ROOT
119 )
120