|  | # - 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( FFTW_ROOT ) | 
|  |  | 
|  | 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) | 
|  |  |