121 lines
2.7 KiB
CMake
121 lines
2.7 KiB
CMake
|
# - 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
|
||
|
include(CMakeFindDependencyMacro)
|
||
|
find_dependency(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)
|
||
|
|