123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- SET(MATLAB_FOUND 0)
- IF(WIN32)
-
- FOREACH(MATVER "7.14" "7.11" "7.10" "7.9" "7.8" "7.7" "7.6" "7.5" "7.4")
- IF((NOT DEFINED MATLAB_ROOT)
- OR ("${MATLAB_ROOT}" STREQUAL "")
- OR ("${MATLAB_ROOT}" STREQUAL "/registry"))
- GET_FILENAME_COMPONENT(MATLAB_ROOT
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\${MATVER};MATLABROOT]"
- ABSOLUTE)
- SET(MATLAB_VERSION ${MATVER})
- ENDIF((NOT DEFINED MATLAB_ROOT)
- OR ("${MATLAB_ROOT}" STREQUAL "")
- OR ("${MATLAB_ROOT}" STREQUAL "/registry"))
- ENDFOREACH(MATVER)
-
-
-
- set(CMAKE_SIZEOF_VOID_P 8)
- IF(CMAKE_SIZEOF_VOID_P MATCHES "4")
- SET(WINDIR "win32")
- ELSEIF(CMAKE_SIZEOF_VOID_P MATCHES "8")
- SET(WINDIR "win64")
- ELSE(CMAKE_SIZEOF_VOID_P MATCHES "4")
- MESSAGE(FATAL_ERROR
- "CMAKE_SIZEOF_VOID_P (${CMAKE_SIZEOF_VOID_P}) doesn't indicate a valid platform")
- ENDIF(CMAKE_SIZEOF_VOID_P MATCHES "4")
-
- IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
- SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc60")
- ELSEIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7")
-
-
- SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/msvc71")
-
- ELSEIF(${CMAKE_GENERATOR} MATCHES "Borland")
-
-
- SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/bcc54")
-
-
- ELSEIF(${CMAKE_GENERATOR} MATCHES "Visual Studio*")
-
-
- SET(MATLAB_LIBRARIES_DIR "${MATLAB_ROOT}/extern/lib/${WINDIR}/microsoft/")
- ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
- MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}")
- ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
-
- FIND_LIBRARY(MATLAB_MEX_LIBRARY
- libmex
- ${MATLAB_LIBRARIES_DIR}
- )
- FIND_LIBRARY(MATLAB_MX_LIBRARY
- libmx
- ${MATLAB_LIBRARIES_DIR}
- )
- FIND_LIBRARY(MATLAB_MAT_LIBRARY
- libmat
- ${MATLAB_LIBRARIES_DIR}
- )
- FIND_LIBRARY(MATLAB_ENG_LIBRARY
- libeng
- ${MATLAB_LIBRARIES_DIR}
- )
-
- FIND_PATH(MATLAB_INCLUDE_DIR
- "mex.h"
- "${MATLAB_ROOT}/extern/include"
- )
- ELSE(WIN32)
- IF((NOT DEFINED MATLAB_ROOT)
- OR ("${MATLAB_ROOT}" STREQUAL ""))
-
- EXECUTE_PROCESS(
- COMMAND which matlab
- COMMAND xargs readlink
- COMMAND xargs dirname
- COMMAND xargs dirname
- COMMAND xargs echo -n
- OUTPUT_VARIABLE MATLAB_ROOT
- )
- ENDIF((NOT DEFINED MATLAB_ROOT)
- OR ("${MATLAB_ROOT}" STREQUAL ""))
-
- IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- SET(LIBRARY_EXTENSION .dylib)
-
-
- IF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
-
- FOREACH(MATVER "R2014a" "R2014a" "R2013b" "R2013a" "R2012b" "R2012a" "R2011b" "R2011a" "R2010b" "R2010a" "R2009b" "R2009a" "R2008b")
- IF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
- IF(EXISTS /Applications/MATLAB_${MATVER}.app)
- SET(MATLAB_ROOT /Applications/MATLAB_${MATVER}.app)
-
- ENDIF(EXISTS /Applications/MATLAB_${MATVER}.app)
- ENDIF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
- ENDFOREACH(MATVER)
- ENDIF((NOT DEFINED MATLAB_ROOT) OR ("${MATLAB_ROOT}" STREQUAL ""))
- ELSE(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
- SET(LIBRARY_EXTENSION .so)
- ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-
- EXECUTE_PROCESS(
-
- COMMAND find "${MATLAB_ROOT}/bin" -name libmex${LIBRARY_EXTENSION}
- COMMAND xargs echo -n
- OUTPUT_VARIABLE MATLAB_MEX_LIBRARY
- )
- EXECUTE_PROCESS(
-
- COMMAND find "${MATLAB_ROOT}/bin" -name libmx${LIBRARY_EXTENSION}
- COMMAND xargs echo -n
- OUTPUT_VARIABLE MATLAB_MX_LIBRARY
- )
- EXECUTE_PROCESS(
-
- COMMAND find "${MATLAB_ROOT}/bin" -name libmat${LIBRARY_EXTENSION}
- COMMAND xargs echo -n
- OUTPUT_VARIABLE MATLAB_MAT_LIBRARY
- )
- EXECUTE_PROCESS(
-
- COMMAND find "${MATLAB_ROOT}/bin" -name libeng${LIBRARY_EXTENSION}
- COMMAND xargs echo -n
- OUTPUT_VARIABLE MATLAB_ENG_LIBRARY
- )
-
- FIND_PATH(MATLAB_INCLUDE_DIR
- "mex.h"
- PATHS "${MATLAB_ROOT}/extern/include"
- )
- ENDIF(WIN32)
- SET(MATLAB_LIBRARIES
- ${MATLAB_MAT_LIBRARY}
- ${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
- )
|