FindMatlab.cmake 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #
  2. # this module looks for Matlab
  3. #
  4. # Define
  5. # MATLAB_INCLUDE_DIR points to the include path for mex.h, engine.h
  6. # MATLAB_LIBRARIES list of libraries need: libmex.lib, libmx.lib and libeng.lib
  7. # MATLAB_MEX_LIBRARY point to libmex.lib
  8. # MATLAB_MX_LIBRARY point to libmx.lib
  9. # MATLAB_ENG_LIBRARY point to libeng.lib
  10. SET(MATLAB_FOUND 0)
  11. IF(WIN32)
  12. IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
  13. SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc60")
  14. ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
  15. IF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7")
  16. # Assume people are generally using 7.1,
  17. # if using 7.0 need to link to: ../extern/lib/win32/microsoft/msvc70
  18. SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/msvc71")
  19. ELSE(${CMAKE_GENERATOR} MATCHES "Visual Studio 7")
  20. IF(${CMAKE_GENERATOR} MATCHES "Borland")
  21. # Same here, there are also: bcc50 and bcc51 directories
  22. SET(MATLAB_ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/lib/win32/microsoft/bcc54")
  23. ELSE(${CMAKE_GENERATOR} MATCHES "Borland")
  24. MESSAGE(FATAL_ERROR "Generator not compatible: ${CMAKE_GENERATOR}")
  25. ENDIF(${CMAKE_GENERATOR} MATCHES "Borland")
  26. ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 7")
  27. ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio 6")
  28. FIND_LIBRARY(MATLAB_MEX_LIBRARY
  29. libmex
  30. ${MATLAB_ROOT}
  31. )
  32. FIND_LIBRARY(MATLAB_MX_LIBRARY
  33. libmx
  34. ${MATLAB_ROOT}
  35. )
  36. FIND_LIBRARY(MATLAB_ENG_LIBRARY
  37. libeng
  38. ${MATLAB_ROOT}
  39. )
  40. FIND_PATH(MATLAB_INCLUDE_DIR
  41. "mex.h"
  42. "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MathWorks\\MATLAB\\7.0;MATLABROOT]/extern/include"
  43. )
  44. ELSE( WIN32 )
  45. IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
  46. # Regular x86
  47. SET(MATLAB_ROOT
  48. /usr/local/matlab-7sp1/bin/glnx86/
  49. /opt/matlab-7sp1/bin/glnx86/
  50. $ENV{HOME}/matlab-7sp1/bin/glnx86/
  51. $ENV{HOME}/redhat-matlab/bin/glnx86/
  52. )
  53. ELSE(CMAKE_SIZEOF_VOID_P EQUAL 4)
  54. # AMD64:
  55. SET(MATLAB_ROOT
  56. /usr/local/matlab-7sp1/bin/glnxa64/
  57. /opt/matlab-7sp1/bin/glnxa64/
  58. $ENV{HOME}/matlab7_64/bin/glnxa64/
  59. $ENV{HOME}/matlab-7sp1/bin/glnxa64/
  60. $ENV{HOME}/redhat-matlab/bin/glnxa64/
  61. )
  62. ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 4)
  63. FIND_LIBRARY(MATLAB_MEX_LIBRARY
  64. mex
  65. ${MATLAB_ROOT}
  66. )
  67. FIND_LIBRARY(MATLAB_MX_LIBRARY
  68. mx
  69. ${MATLAB_ROOT}
  70. )
  71. FIND_LIBRARY(MATLAB_ENG_LIBRARY
  72. eng
  73. ${MATLAB_ROOT}
  74. )
  75. FIND_PATH(MATLAB_INCLUDE_DIR
  76. "mex.h"
  77. "/usr/local/matlab-7sp1/extern/include/"
  78. "/opt/matlab-7sp1/extern/include/"
  79. "$ENV{HOME}/matlab-7sp1/extern/include/"
  80. "$ENV{HOME}/redhat-matlab/extern/include/"
  81. )
  82. ENDIF(WIN32)
  83. # This is common to UNIX and Win32:
  84. SET(MATLAB_LIBRARIES
  85. ${MATLAB_MEX_LIBRARY}
  86. ${MATLAB_MX_LIBRARY}
  87. ${MATLAB_ENG_LIBRARY}
  88. )
  89. IF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES)
  90. SET(MATLAB_FOUND 1)
  91. ENDIF(MATLAB_INCLUDE_DIR AND MATLAB_LIBRARIES)
  92. MARK_AS_ADVANCED(
  93. MATLAB_LIBRARIES
  94. MATLAB_MEX_LIBRARY
  95. MATLAB_MX_LIBRARY
  96. MATLAB_ENG_LIBRARY
  97. MATLAB_INCLUDE_DIR
  98. MATLAB_FOUND
  99. MATLAB_ROOT
  100. )