FindMatlab.cmake 3.1 KB

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