ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/cmake/modules/FindFFTW.cmake
(Generate patch)

Comparing branches/development/cmake/modules/FindFFTW.cmake (file contents):
Revision 1626 by gezelter, Tue Sep 13 15:39:54 2011 UTC vs.
Revision 1668 by gezelter, Fri Jan 6 19:03:05 2012 UTC

# Line 1 | Line 1
1 < ## FFTW can be compiled and subsequently linked against
2 < ## various data types.
3 < ## There is a single set of include files, and then muttiple libraries,
4 < ## One for each type.  I.e. libfftw.a-->double, libfftwf.a-->float
5 <
6 < ## The following logic belongs in the individual package
7 < mark_as_advanced(USE_FFTWD)
8 < option(USE_FFTWD "Use double precision FFTW if found" ON)
9 < ## mark_as_advanced(USE_FFTWF)
10 < ## option(USE_FFTWF "Use single precision FFTW if found" ON)
11 <
12 < if(USE_FFTWD OR USE_FFTWF)
13 <
14 < set(FFTW_INC_SEARCHPATH
15 <   /sw/include
16 <   /usr/include
17 <   /usr/local/include
18 <   /usr/include/fftw
19 <   /usr/local/include/fftw
20 <   /opt/local/include
21 < )
22 <
23 < find_path(FFTW_INCLUDE_PATH fftw3.h ${FFTW_INC_SEARCHPATH})
24 <
25 < if(FFTW_INCLUDE_PATH)
26 <   set(FFTW_INCLUDE ${FFTW_INCLUDE_PATH})
27 < endif(FFTW_INCLUDE_PATH)
28 <
29 < if(FFTW_INCLUDE)
30 <   include_directories( ${FFTW_INCLUDE})
31 < endif(FFTW_INCLUDE)
32 <
33 < get_filename_component(FFTW_INSTALL_BASE_PATH ${FFTW_INCLUDE_PATH} PATH)
34 <
35 < set(FFTW_LIB_SEARCHPATH
36 <   ${FFTW_INSTALL_BASE_PATH}/lib
37 <   /usr/lib/fftw
38 <   /usr/local/lib/fftw
39 <   /opt/local/lib
40 < )
41 <
42 < if(USE_FFTWD)
43 <   mark_as_advanced(FFTWD_LIB)
44 <   find_library(FFTWD_LIB fftw3 ${FFTW_LIB_SEARCHPATH}) #Double Precision Lib
45 <   find_library(FFTWD_THREADS_LIB fftw3_threads ${FFTW_LIB_SEARCHPATH}) #Double Precision Lib only if compiled with threads support
46 <
47 <   if(FFTWD_LIB)
48 <     set(FFTWD_FOUND 1)
49 <     get_filename_component(FFTW_LIBDIR ${FFTWD_LIB} PATH)
50 <     if(FFTWD_THREADS_LIB)
51 <       set(FFTWD_LIB ${FFTWD_LIB} ${FFTWD_THREADS_LIB} )
52 <     endif(FFTWD_THREADS_LIB)
53 <   endif(FFTWD_LIB)
54 < endif(USE_FFTWD)
55 <
56 < if(USE_FFTWF)
57 <   mark_as_advanced(FFTWF_LIB)
58 <   find_library(FFTWF_LIB fftw3f ${FFTW_LIB_SEARCHPATH}) #Single Precision Lib
59 <   find_library(FFTWF_THREADS_LIB fftw3f_threads ${FFTW_LIB_SEARCHPATH}) #Single Precision Lib only if compiled with threads support
60 <
61 <   if(FFTWF_LIB)
62 <     set(FFTWF_FOUND 1)
63 <     get_filename_component(FFTW_LIBDIR ${FFTWF_LIB} PATH)
64 <     if(FFTWF_THREADS_LIB)
65 <       set(FFTWF_LIB ${FFTWF_LIB} ${FFTWF_THREADS_LIB} )
66 <     endif(FFTWF_THREADS_LIB)
67 <   endif(FFTWF_LIB)
68 < endif(USE_FFTWF)
69 <
70 < endif(USE_FFTWD OR USE_FFTWF)
1 > # - Find FFTW
2 > # Find the native FFTW includes and library
3 > # This module defines
4 > #  FFTW_INCLUDE_DIR, where to find fftw3.h, etc.
5 > #  FFTW_LIBRARIES, the libraries needed to use FFTW.
6 > #  FFTW_FOUND, If false, do not try to use FFTW.
7 > # also defined, but not for general use are
8 > #  FFTW_LIBRARY, where to find the FFTW library.
9 >
10 > FIND_PATH(FFTW_INCLUDE_DIR fftw3.h
11 > /usr/local/include
12 > /usr/include
13 > /opt/local/lib
14 > )
15 >
16 > SET(FFTW_NAMES ${FFTW_NAMES} fftw3 fftw3f fftw3-3)
17 > FIND_LIBRARY(FFTW_LIBRARY
18 >  NAMES ${FFTW_NAMES}
19 >  PATHS /usr/lib /usr/local/lib /opt/local/lib
20 >  )
21 >
22 > # Find threads part of FFTW
23 >
24 > SET(FFTW_THREADS_NAMES ${FFTW_THREADS_NAMES} fftw3f_threads fftw3_threads fftw3-3_threads)
25 > FIND_LIBRARY(FFTW_THREADS_LIBRARY
26 >  NAMES ${FFTW_THREADS_NAMES}
27 >  PATHS /usr/lib /usr/local/lib /opt/local/lib
28 >  )
29 >
30 > IF (FFTW_THREADS_LIBRARY AND FFTW_INCLUDE_DIR)
31 >    SET(FFTW_THREADS_LIBRARIES ${FFTW_THREADS_LIBRARY})
32 >    SET(FFTW_THREADS_FOUND "YES")
33 > ELSE (FFTW_THREADS_LIBRARY AND FFTW_INCLUDE_DIR)
34 >  SET(FFTW_THREADS_FOUND "NO")
35 > ENDIF (FFTW_THREADS_LIBRARY AND FFTW_INCLUDE_DIR)
36 >
37 >
38 > IF (FFTW_THREADS_FOUND)
39 >   IF (NOT FFTW_THREADS_FIND_QUIETLY)
40 >      MESSAGE(STATUS "Found FFTW threads: ${FFTW_THREADS_LIBRARIES}")
41 >   ENDIF (NOT FFTW_THREADS_FIND_QUIETLY)
42 > ELSE (FFTW_THREADS_FOUND)
43 >   IF (FFTW_THREADS_FIND_REQUIRED)
44 >      MESSAGE(FATAL_ERROR "Could not find FFTW threads library")
45 >   ENDIF (FFTW_THREADS_FIND_REQUIRED)
46 > ENDIF (FFTW_THREADS_FOUND)
47 >
48 >
49 > IF (FFTW_LIBRARY AND FFTW_INCLUDE_DIR)
50 >    SET(FFTW_LIBRARIES ${FFTW_LIBRARY})
51 >    SET(FFTW_FOUND "YES")
52 > ELSE (FFTW_LIBRARY AND FFTW_INCLUDE_DIR)
53 >  SET(FFTW_FOUND "NO")
54 > ENDIF (FFTW_LIBRARY AND FFTW_INCLUDE_DIR)
55 >
56 >
57 > IF (FFTW_FOUND)
58 >   IF (NOT FFTW_FIND_QUIETLY)
59 >      MESSAGE(STATUS "Found FFTW: ${FFTW_LIBRARIES}")
60 >   ENDIF (NOT FFTW_FIND_QUIETLY)
61 > ELSE (FFTW_FOUND)
62 >   IF (FFTW_FIND_REQUIRED)
63 >      MESSAGE(FATAL_ERROR "Could not find FFTW library")
64 >   ENDIF (FFTW_FIND_REQUIRED)
65 > ENDIF (FFTW_FOUND)
66 >
67 > SET (ON_UNIX ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
68 >             ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
69 > IF (${ON_UNIX})
70 >   SET (FFTW_EXECUTABLE_LIBRARIES fftw3f fftw3f_threads)
71 > ENDIF (${ON_UNIX})

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines