FindFFTW3.cmake 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #
  2. # Try to find FFTW3 library
  3. # (see www.fftw.org)
  4. # Once run this will define:
  5. #
  6. # FFTW3_FOUND
  7. # FFTW3_INCLUDE_DIR
  8. # FFTW3_LIBRARIES
  9. # FFTW3_LINK_DIRECTORIES
  10. #
  11. # You may set one of these options before including this file:
  12. # FFTW3_USE_SSE2
  13. #
  14. # TODO: _F_ versions.
  15. #
  16. # Jan Woetzel 05/2004
  17. # www.mip.informatik.uni-kiel.de
  18. # --------------------------------
  19. FIND_PATH(FFTW3_INCLUDE_DIR fftw3.h
  20. ${FFTW3_DIR}/include
  21. ${FFTW3_HOME}/include
  22. ${FFTW3_DIR}
  23. ${FFTW3_HOME}
  24. $ENV{FFTW3_DIR}/include
  25. $ENV{FFTW3_HOME}/include
  26. $ENV{FFTW3_DIR}
  27. $ENV{FFTW3_HOME}
  28. /usr/include
  29. /usr/local/include
  30. $ENV{SOURCE_DIR}/fftw3
  31. $ENV{SOURCE_DIR}/fftw3/include
  32. $ENV{SOURCE_DIR}/fftw
  33. $ENV{SOURCE_DIR}/fftw/include
  34. )
  35. #MESSAGE("DBG FFTW3_INCLUDE_DIR=${FFTW3_INCLUDE_DIR}")
  36. SET(FFTW3_POSSIBLE_LIBRARY_PATH
  37. ${FFTW3_DIR}/lib
  38. ${FFTW3_HOME}/lib
  39. ${FFTW3_DIR}
  40. ${FFTW3_HOME}
  41. $ENV{FFTW3_DIR}/lib
  42. $ENV{FFTW3_HOME}/lib
  43. $ENV{FFTW3_DIR}
  44. $ENV{FFTW3_HOME}
  45. /usr/lib
  46. /usr/local/lib
  47. $ENV{SOURCE_DIR}/fftw3
  48. $ENV{SOURCE_DIR}/fftw3/lib
  49. $ENV{SOURCE_DIR}/fftw
  50. $ENV{SOURCE_DIR}/fftw/lib
  51. )
  52. # the lib prefix is containe din filename onf W32, unfortuantely. JW
  53. # teh "general" lib:
  54. FIND_LIBRARY(FFTW3_FFTW_LIBRARY
  55. NAMES fftw3 libfftw libfftw3 libfftw3-3
  56. PATHS
  57. ${FFTW3_POSSIBLE_LIBRARY_PATH}
  58. )
  59. #MESSAGE("DBG FFTW3_FFTW_LIBRARY=${FFTW3_FFTW_LIBRARY}")
  60. FIND_LIBRARY(FFTW3_FFTWF_LIBRARY
  61. NAMES fftwf3 fftw3f fftwf libfftwf libfftwf3 libfftw3f libfftw3f-3
  62. PATHS
  63. ${FFTW3_POSSIBLE_LIBRARY_PATH}
  64. )
  65. #MESSAGE("DBG FFTW3_FFTWF_LIBRARY=${FFTW3_FFTWF_LIBRARY}")
  66. FIND_LIBRARY(FFTW3_FFTWL_LIBRARY
  67. NAMES fftwl3 fftw3l fftwl libfftwl libfftwl3 libfftw3l libfftw3l-3
  68. PATHS
  69. ${FFTW3_POSSIBLE_LIBRARY_PATH}
  70. )
  71. #MESSAGE("DBG FFTW3_FFTWF_LIBRARY=${FFTW3_FFTWL_LIBRARY}")
  72. FIND_LIBRARY(FFTW3_FFTW_SSE2_LIBRARY
  73. NAMES fftw_sse2 fftw3_sse2 libfftw_sse2 libfftw3_sse2
  74. PATHS
  75. ${FFTW3_POSSIBLE_LIBRARY_PATH}
  76. )
  77. #MESSAGE("DBG FFTW3_FFTW_SSE2_LIBRARY=${FFTW3_FFTW_SSE2_LIBRARY}")
  78. FIND_LIBRARY(FFTW3_FFTWF_SSE_LIBRARY
  79. NAMES fftwf_sse fftwf3_sse fftw3f_sse libfftwf_sse libfftwf3_sse libfftw3f_sse
  80. PATHS
  81. ${FFTW3_POSSIBLE_LIBRARY_PATH}
  82. )
  83. #MESSAGE("DBG FFTW3_FFTWF_SSE_LIBRARY=${FFTW3_FFTWF_SSE_LIBRARY}")
  84. # --------------------------------
  85. # select one of the above
  86. # default:
  87. IF (FFTW3_FFTW_LIBRARY)
  88. SET(FFTW3_LIBRARIES ${FFTW3_FFTW_LIBRARY})
  89. ENDIF (FFTW3_FFTW_LIBRARY)
  90. # specialized:
  91. IF (FFTW3_USE_SSE2 AND FFTW3_FFTW_SSE2_LIBRARY)
  92. SET(FFTW3_LIBRARIES ${FFTW3_FFTW_SSE2_LIBRARY})
  93. ENDIF (FFTW3_USE_SSE2 AND FFTW3_FFTW_SSE2_LIBRARY)
  94. # --------------------------------
  95. IF(FFTW3_LIBRARIES)
  96. IF (FFTW3_INCLUDE_DIR)
  97. # OK, found all we need
  98. SET(FFTW3_FOUND TRUE)
  99. GET_FILENAME_COMPONENT(FFTW3_LINK_DIRECTORIES ${FFTW3_LIBRARIES} PATH)
  100. ELSE (FFTW3_INCLUDE_DIR)
  101. MESSAGE("FFTW3 include dir not found. Set FFTW3_DIR to find it.")
  102. ENDIF(FFTW3_INCLUDE_DIR)
  103. ELSE(FFTW3_LIBRARIES)
  104. MESSAGE("FFTW3 lib not found. Set FFTW3_DIR to find it.")
  105. ENDIF(FFTW3_LIBRARIES)
  106. MARK_AS_ADVANCED(
  107. FFTW3_INCLUDE_DIR
  108. FFTW3_LIBRARIES
  109. FFTW3_FFTW_LIBRARY
  110. FFTW3_FFTW_SSE2_LIBRARY
  111. FFTW3_FFTWF_LIBRARY
  112. FFTW3_FFTWF_SSE_LIBRARY
  113. FFTW3_FFTWL_LIBRARY
  114. FFTW3_LINK_DIRECTORIES
  115. )