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 1496 by chuckv, Wed Sep 8 20:42:24 2010 UTC vs.
Revision 1626 by gezelter, Tue Sep 13 15:39:54 2011 UTC

# Line 1 | Line 1
1 < # FFTW_INCLUDE_DIR = fftw3.h
2 < # FFTW_LIBRARIES = libfftw3.a
3 < # FFTW_FOUND = true if FFTW3 is found
4 <
5 < IF(FFTW_INCLUDE_DIRS)
6 <  FIND_PATH(FFTW_INCLUDE_DIR fftw3.h  ${FFTW_INCLUDE_DIRS})
7 <  FIND_LIBRARY(FFTW_LIBRARY fftw3 ${FFTW_LIBRARY_DIRS})
8 < ELSE(FFTW_INCLUDE_DIRS)
9 <  #  SET(TRIAL_PATHS
10 <  #    $ENV{FFTW_HOME}/include
11 <  #    /usr/include
12 <  #    /usr/local/include
13 <  #    /opt/include
14 <  #    /usr/apps/include
15 <  #  )
16 <  #
17 <  #  SET(TRIAL_LIBRARY_PATHS
18 <  #    $ENV{FFTW_HOME}/lib
19 <  #    /usr/lib
20 <  #    /usr/local/lib
21 <  #    /opt/lib
22 <  #    /sw/lib
23 <  #    )
24 <  #
25 <  #  FIND_PATH(FFTW_INCLUDE_DIR fftw3.h ${TRIAL_PATHS})
26 <  #  FIND_LIBRARY(FFTW_LIBRARY fftw3 ${TRIAL_LIBRARY_PATHS})
27 <  FIND_PATH(FFTW_INCLUDE_DIR fftw3.h ${QMC_INCLUDE_PATHS})
28 <  FIND_LIBRARY(FFTW_LIBRARIES fftw3 ${QMC_LIBRARY_PATHS})
29 <
30 < ENDIF(FFTW_INCLUDE_DIRS)
31 <
32 < SET(FFTW_FOUND FALSE)
33 < IF(FFTW_INCLUDE_DIR AND FFTW_LIBRARIES)
34 <  MESSAGE(STATUS "FFTW_INCLUDE_DIR=${FFTW_INCLUDE_DIR}")
35 <  MESSAGE(STATUS "FFTW_LIBRARIES=${FFTW_LIBRARIES}")
36 <  SET(FFTW_FOUND TRUE)
37 < ENDIF()
38 <
39 < MARK_AS_ADVANCED(
40 <   FFTW_INCLUDE_DIR
41 <   FFTW_LIBRARIES
42 <   FFTW_FOUND
43 < )
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)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines