| # - Find the FFTW library | 
 | # | 
 | # Usage: | 
 | #   find_package(FFTW [REQUIRED] [QUIET] ) | 
 | #      | 
 | # It sets the following variables: | 
 | #   FFTW_FOUND               ... true if fftw is found on the system | 
 | #   FFTW_LIBRARIES           ... full path to fftw library | 
 | #   FFTW_INCLUDES            ... fftw include directory | 
 | # | 
 | # The following variables will be checked by the function | 
 | #   FFTW_USE_STATIC_LIBS    ... if true, only static libraries are found | 
 | #   FFTW_ROOT               ... if set, the libraries are exclusively searched | 
 | #                               under this path | 
 | #   FFTW_LIBRARY            ... fftw library to use | 
 | #   FFTW_INCLUDE_DIR        ... fftw include directory | 
 | # | 
 |  | 
 | #If environment variable FFTWDIR is specified, it has same effect as FFTW_ROOT | 
 | if( NOT FFTW_ROOT AND ENV{FFTWDIR} ) | 
 |   set( FFTW_ROOT $ENV{FFTWDIR} ) | 
 | endif() | 
 |  | 
 | # Check if we can use PkgConfig | 
 | find_package(PkgConfig) | 
 |  | 
 | #Determine from PKG | 
 | if( PKG_CONFIG_FOUND AND NOT FFTW_ROOT ) | 
 |   pkg_check_modules( PKG_FFTW QUIET "fftw3" ) | 
 | endif() | 
 |  | 
 | #Check whether to search static or dynamic libs | 
 | set( CMAKE_FIND_LIBRARY_SUFFIXES_SAV ${CMAKE_FIND_LIBRARY_SUFFIXES} ) | 
 |  | 
 | if( ${FFTW_USE_STATIC_LIBS} ) | 
 |   set( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX} ) | 
 | else() | 
 |   set( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX} ) | 
 | endif() | 
 |  | 
 | if( FFTW_ROOT ) | 
 |  | 
 |   #find libs | 
 |   find_library( | 
 |     FFTW_LIB | 
 |     NAMES "fftw3" | 
 |     PATHS ${FFTW_ROOT} | 
 |     PATH_SUFFIXES "lib" "lib64" | 
 |     NO_DEFAULT_PATH | 
 |   ) | 
 |  | 
 |   find_library( | 
 |     FFTWF_LIB | 
 |     NAMES "fftw3f" | 
 |     PATHS ${FFTW_ROOT} | 
 |     PATH_SUFFIXES "lib" "lib64" | 
 |     NO_DEFAULT_PATH | 
 |   ) | 
 |  | 
 |   find_library( | 
 |     FFTWL_LIB | 
 |     NAMES "fftw3l" | 
 |     PATHS ${FFTW_ROOT} | 
 |     PATH_SUFFIXES "lib" "lib64" | 
 |     NO_DEFAULT_PATH | 
 |   ) | 
 |  | 
 |   #find includes | 
 |   find_path( | 
 |     FFTW_INCLUDES | 
 |     NAMES "fftw3.h" | 
 |     PATHS ${FFTW_ROOT} | 
 |     PATH_SUFFIXES "include" | 
 |     NO_DEFAULT_PATH | 
 |   ) | 
 |  | 
 | else() | 
 |  | 
 |   find_library( | 
 |     FFTW_LIB | 
 |     NAMES "fftw3" | 
 |     PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR} | 
 |   ) | 
 |  | 
 |   find_library( | 
 |     FFTWF_LIB | 
 |     NAMES "fftw3f" | 
 |     PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR} | 
 |   ) | 
 |  | 
 |  | 
 |   find_library( | 
 |     FFTWL_LIB | 
 |     NAMES "fftw3l" | 
 |     PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR} | 
 |   ) | 
 |  | 
 |   find_path( | 
 |     FFTW_INCLUDES | 
 |     NAMES "fftw3.h" | 
 |     PATHS ${PKG_FFTW_INCLUDE_DIRS} ${INCLUDE_INSTALL_DIR} | 
 |   ) | 
 |  | 
 | endif() | 
 |  | 
 | set(FFTW_LIBRARIES ${FFTW_LIB} ${FFTWF_LIB}) | 
 |  | 
 | if(FFTWL_LIB) | 
 |   set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTWL_LIB}) | 
 | endif() | 
 |  | 
 | set( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV} ) | 
 |  | 
 | include(FindPackageHandleStandardArgs) | 
 | find_package_handle_standard_args(FFTW DEFAULT_MSG | 
 |                                   FFTW_INCLUDES FFTW_LIBRARIES) | 
 |  | 
 | mark_as_advanced(FFTW_INCLUDES FFTW_LIBRARIES FFTW_LIB FFTWF_LIB FFTWL_LIB) | 
 |  |