ENH: add Matlab support
This commit is contained in:
parent
fcafddb318
commit
db1903df89
108
Modules/FindMatlab.cmake
Normal file
108
Modules/FindMatlab.cmake
Normal file
@ -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
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user