source: pacpussensors/trunk/Vislab/lib3dv/eigen/cmake/FindFFTW.cmake@ 136

Last change on this file since 136 was 136, checked in by ldecherf, 7 years ago

Doc

File size: 2.7 KB
Line 
1# - Find the FFTW library
2#
3# Usage:
4# find_package(FFTW [REQUIRED] [QUIET] )
5#
6# It sets the following variables:
7# FFTW_FOUND ... true if fftw is found on the system
8# FFTW_LIBRARIES ... full path to fftw library
9# FFTW_INCLUDES ... fftw include directory
10#
11# The following variables will be checked by the function
12# FFTW_USE_STATIC_LIBS ... if true, only static libraries are found
13# FFTW_ROOT ... if set, the libraries are exclusively searched
14# under this path
15# FFTW_LIBRARY ... fftw library to use
16# FFTW_INCLUDE_DIR ... fftw include directory
17#
18
19#If environment variable FFTWDIR is specified, it has same effect as FFTW_ROOT
20if( NOT FFTW_ROOT AND ENV{FFTWDIR} )
21 set( FFTW_ROOT $ENV{FFTWDIR} )
22endif()
23
24# Check if we can use PkgConfig
25find_package(PkgConfig)
26
27#Determine from PKG
28if( PKG_CONFIG_FOUND AND NOT FFTW_ROOT )
29 pkg_check_modules( PKG_FFTW QUIET "fftw3" )
30endif()
31
32#Check whether to search static or dynamic libs
33set( CMAKE_FIND_LIBRARY_SUFFIXES_SAV ${CMAKE_FIND_LIBRARY_SUFFIXES} )
34
35if( ${FFTW_USE_STATIC_LIBS} )
36 set( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX} )
37else()
38 set( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_SHARED_LIBRARY_SUFFIX} )
39endif()
40
41if( FFTW_ROOT )
42
43 #find libs
44 find_library(
45 FFTW_LIB
46 NAMES "fftw3"
47 PATHS ${FFTW_ROOT}
48 PATH_SUFFIXES "lib" "lib64"
49 NO_DEFAULT_PATH
50 )
51
52 find_library(
53 FFTWF_LIB
54 NAMES "fftw3f"
55 PATHS ${FFTW_ROOT}
56 PATH_SUFFIXES "lib" "lib64"
57 NO_DEFAULT_PATH
58 )
59
60 find_library(
61 FFTWL_LIB
62 NAMES "fftw3l"
63 PATHS ${FFTW_ROOT}
64 PATH_SUFFIXES "lib" "lib64"
65 NO_DEFAULT_PATH
66 )
67
68 #find includes
69 find_path(
70 FFTW_INCLUDES
71 NAMES "fftw3.h"
72 PATHS ${FFTW_ROOT}
73 PATH_SUFFIXES "include"
74 NO_DEFAULT_PATH
75 )
76
77else()
78
79 find_library(
80 FFTW_LIB
81 NAMES "fftw3"
82 PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
83 )
84
85 find_library(
86 FFTWF_LIB
87 NAMES "fftw3f"
88 PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
89 )
90
91
92 find_library(
93 FFTWL_LIB
94 NAMES "fftw3l"
95 PATHS ${PKG_FFTW_LIBRARY_DIRS} ${LIB_INSTALL_DIR}
96 )
97
98 find_path(
99 FFTW_INCLUDES
100 NAMES "fftw3.h"
101 PATHS ${PKG_FFTW_INCLUDE_DIRS} ${INCLUDE_INSTALL_DIR}
102 )
103
104endif( FFTW_ROOT )
105
106set(FFTW_LIBRARIES ${FFTW_LIB} ${FFTWF_LIB})
107
108if(FFTWL_LIB)
109 set(FFTW_LIBRARIES ${FFTW_LIBRARIES} ${FFTWL_LIB})
110endif()
111
112set( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV} )
113
114include(FindPackageHandleStandardArgs)
115find_package_handle_standard_args(FFTW DEFAULT_MSG
116 FFTW_INCLUDES FFTW_LIBRARIES)
117
118mark_as_advanced(FFTW_INCLUDES FFTW_LIBRARIES FFTW_LIB FFTWF_LIB FFTWL_LIB)
119
Note: See TracBrowser for help on using the repository browser.