@@ -16,29 +16,35 @@ find_library(FFTW3_LIBRARY
1616 HINTS ${FFTW3_DIR}
1717 PATH_SUFFIXES "lib"
1818 )
19- find_library (FFTW3_FLOAT_LIBRARY
20- NAMES fftw3f
21- HINTS ${FFTW3_DIR}
22- PATH_SUFFIXES "lib"
23- )
2419
25- # both libfftw3.so and libfftw3_omp.so should be link in multi-thread term
20+ if (ENABLE_FLOAT_FFTW)
21+ find_library (FFTW3_FLOAT_LIBRARY
22+ NAMES fftw3f
23+ HINTS ${FFTW3_DIR}
24+ PATH_SUFFIXES "lib"
25+ )
26+ endif ()
27+
28+ # Both libfftw3.so and libfftw3_omp.so are required for OpenMP builds.
2629if (USE_OPENMP)
27- find_library (FFTW3_OMP_LIBRARY
28- NAMES fftw3_omp
29- HINTS ${FFTW3_DIR}
30- PATH_SUFFIXES "lib"
31- )
30+ find_library (FFTW3_OMP_LIBRARY
31+ NAMES fftw3_omp
32+ HINTS ${FFTW3_DIR}
33+ PATH_SUFFIXES "lib"
34+ )
3235endif ()
3336
3437# Handle the QUIET and REQUIRED arguments and
3538# set FFTW3_FOUND to TRUE if all variables are non-zero.
3639include (FindPackageHandleStandardArgs )
37- if (USE_OPENMP)
38- find_package_handle_standard_args (FFTW3 DEFAULT_MSG FFTW3_OMP_LIBRARY FFTW3_LIBRARY FFTW3_FLOAT_LIBRARY FFTW3_INCLUDE_DIR)
39- else ()
40- find_package_handle_standard_args (FFTW3 DEFAULT_MSG FFTW3_LIBRARY FFTW3_FLOAT_LIBRARY FFTW3_INCLUDE_DIR)
40+ set (_fftw3_required_vars FFTW3_LIBRARY FFTW3_INCLUDE_DIR)
41+ if (USE_OPENMP)
42+ list (APPEND _fftw3_required_vars FFTW3_OMP_LIBRARY)
43+ endif ()
44+ if (ENABLE_FLOAT_FFTW)
45+ list (APPEND _fftw3_required_vars FFTW3_FLOAT_LIBRARY)
4146endif ()
47+ find_package_handle_standard_args (FFTW3 DEFAULT_MSG ${_fftw3_required_vars} )
4248
4349# Copy the results to the output variables and target.
4450if (FFTW3_FOUND)
@@ -64,7 +70,7 @@ if(FFTW3_FOUND)
6470 IMPORTED_LOCATION "${FFTW3_LIBRARY} "
6571 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIRS} " )
6672 endif ()
67- if (NOT TARGET FFTW3::FFTW3_FLOAT)
73+ if (ENABLE_FLOAT_FFTW AND NOT TARGET FFTW3::FFTW3_FLOAT)
6874 add_library (FFTW3::FFTW3_FLOAT UNKNOWN IMPORTED )
6975 set_target_properties (FFTW3::FFTW3_FLOAT PROPERTIES
7076 IMPORTED_LINK_INTERFACE_LANGUAGES "C"
0 commit comments