mirror of
https://github.com/cosmo-sims/monofonIC.git
synced 2024-09-19 17:03:45 +02:00
126 lines
3.7 KiB
CMake
126 lines
3.7 KiB
CMake
# - Find FFTW
|
|
# Find the native FFTW includes and library
|
|
# This module defines
|
|
# FFTW_INCLUDE_DIR, where to find fftw3.h, etc.
|
|
# FFTW_LIBRARIES, the libraries needed to use FFTW.
|
|
# FFTW_FOUND, If false, do not try to use FFTW.
|
|
# also defined, but not for general use are
|
|
# FFTW_LIBRARY, where to find the FFTW library.
|
|
|
|
#UNSET(FFTW_INCLUDE_DIR CACHE)
|
|
#UNSET(FFTW_LIBRARY CACHE)
|
|
#UNSET(FFTW_THREADS_NAMES CACHE)
|
|
#UNSET(FFTW_MPI_LIBRARY CACHE)
|
|
|
|
FIND_PATH(FFTW_INCLUDE_DIR fftw3.h
|
|
PATHS ${FFTW3_DIR}
|
|
PATH_SUFFIXES include
|
|
DOC "Directory where the FFTW3 header files are located"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
SET(FFTW_NAMES ${FFTW_NAMES} fftw3 fftw3-3)
|
|
find_library(FFTW_LIBRARY
|
|
NAMES ${FFTW_NAMES}
|
|
PATHS ${FFTW3_DIR}
|
|
PATH_SUFFIXES lib
|
|
DOC "Directory where the FFTW3 library is located"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
SET(FFTW_THREADS_NAMES ${FFTW_THREADS_NAMES} fftw3_threads fftw3-3_threads)
|
|
find_library(FFTW_THREADS_LIBRARY
|
|
NAMES ${FFTW_THREADS_NAMES}
|
|
PATHS ${FFTW3_DIR}
|
|
PATH_SUFFIXES lib
|
|
DOC "Directory where the FFTW3-threads library is located"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
SET(FFTW_MPI_NAMES ${FFTW_MPI_NAMES} fftw3_mpi fftw3-3_mpi)
|
|
find_library(FFTW_MPI_LIBRARY
|
|
NAMES ${FFTW_MPI_NAMES}
|
|
PATHS ${FFTW3_DIR}
|
|
PATH_SUFFIXES lib
|
|
DOC "Directory where the FFTW3-MPI library is located"
|
|
NO_DEFAULT_PATH
|
|
)
|
|
|
|
FIND_PATH(FFTW_INCLUDE_DIR fftw3.h
|
|
${FFTW3_DIR} ${FFTW3_DIR}/include ${FFTW3_DIR}/lib )# /usr/local/include /usr/include /opt/local/lib )
|
|
|
|
FIND_LIBRARY(FFTW_LIBRARY
|
|
NAMES ${FFTW_NAMES}
|
|
PATHS ${FFTW3_DIR} ${FFTW3_DIR}/include ${FFTW3_DIR}/lib )#/usr/lib /usr/local/lib /opt/locala/lib )
|
|
|
|
# Find threads part of FFTW
|
|
FIND_LIBRARY(FFTW_THREADS_LIBRARY
|
|
NAMES ${FFTW_THREADS_NAMES}
|
|
PATHS ${FFTW3_DIR} ${FFTW3_DIR}/include ${FFTW3_DIR}/lib )#/usr/lib /usr/local/lib /opt/local/lib )
|
|
|
|
# Find MPI part of FFTW
|
|
FIND_LIBRARY(FFTW_MPI_LIBRARY
|
|
NAMES ${FFTW_MPI_NAMES}
|
|
PATHS ${FFTW3_DIR} ${FFTW3_DIR}/include ${FFTW3_DIR}/lib )#/usr/lib /usr/local/lib /opt/local/lib )
|
|
|
|
IF (FFTW_THREADS_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
SET(FFTW_THREADS_LIBRARIES ${FFTW_THREADS_LIBRARY})
|
|
SET(FFTW_THREADS_FOUND "YES")
|
|
ELSE (FFTW_THREADS_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
SET(FFTW_THREADS_FOUND "NO")
|
|
ENDIF (FFTW_THREADS_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
|
|
|
|
IF (FFTW_THREADS_FOUND)
|
|
IF (NOT FFTW_THREADS_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found FFTW threads: ${FFTW_THREADS_LIBRARIES}")
|
|
ENDIF (NOT FFTW_THREADS_FIND_QUIETLY)
|
|
ELSE (FFTW_THREADS_FOUND)
|
|
IF (FFTW_THREADS_FIND_REQUIRED)
|
|
MESSAGE(FATAL_ERROR "Could not find FFTW threads library")
|
|
ENDIF (FFTW_THREADS_FIND_REQUIRED)
|
|
ENDIF (FFTW_THREADS_FOUND)
|
|
|
|
|
|
IF (FFTW_MPI_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
SET(FFTW_MPI_LIBRARIES ${FFTW_MPI_LIBRARY})
|
|
SET(FFTW_MPI_FOUND "YES")
|
|
ELSE (FFTW_MPI_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
SET(FFTW_MPI_FOUND "NO")
|
|
ENDIF (FFTW_MPI_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
|
|
|
|
IF (FFTW_MPI_FOUND)
|
|
IF (NOT FFTW_MPI_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found FFTW MPI: ${FFTW_MPI_LIBRARIES}")
|
|
ENDIF (NOT FFTW_MPI_FIND_QUIETLY)
|
|
ELSE (FFTW_MPI_FOUND)
|
|
IF (FFTW_MPI_FIND_REQUIRED)
|
|
MESSAGE(FATAL_ERROR "Could not find FFTW MPI library")
|
|
ENDIF (FFTW_MPI_FIND_REQUIRED)
|
|
ENDIF (FFTW_MPI_FOUND)
|
|
|
|
|
|
IF (FFTW_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
SET(FFTW_LIBRARIES ${FFTW_LIBRARY})
|
|
SET(FFTW_FOUND "YES")
|
|
ELSE (FFTW_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
SET(FFTW_FOUND "NO")
|
|
ENDIF (FFTW_LIBRARY AND FFTW_INCLUDE_DIR)
|
|
|
|
|
|
IF (FFTW_FOUND)
|
|
IF (NOT FFTW_FIND_QUIETLY)
|
|
MESSAGE(STATUS "Found FFTW: ${FFTW_LIBRARIES}")
|
|
ENDIF (NOT FFTW_FIND_QUIETLY)
|
|
ELSE (FFTW_FOUND)
|
|
IF (FFTW_FIND_REQUIRED)
|
|
MESSAGE(FATAL_ERROR "Could not find FFTW library")
|
|
ENDIF (FFTW_FIND_REQUIRED)
|
|
ENDIF (FFTW_FOUND)
|
|
|
|
SET (ON_UNIX ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR
|
|
${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
|
|
IF (${ON_UNIX})
|
|
SET (FFTW_EXECUTABLE_LIBRARIES fftw3f fftw3f_threads)
|
|
ENDIF (${ON_UNIX})
|