From 81fbf0c2e15fa1cd02501d52ed48f52e5c43a18d Mon Sep 17 00:00:00 2001 From: heckflosse Date: Mon, 6 Nov 2017 19:09:50 +0100 Subject: [PATCH] Applied patch from @agriggio to check multithreading in fftw3 --- CMakeLists.txt | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d99a4feaa..626da7019 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -343,11 +343,30 @@ if(OPTION_OMP) endif() # check for libfftw3f_omp +include(CheckCSourceCompiles) if(OPENMP_FOUND) - find_library(fftw3f_omp fftw3f_omp PATHS ${FFTW3F_LIBRARY_DIRS}) - if(fftw3f_omp) + set(CMAKE_REQUIRED_INCLUDES ${FFTW3F_INCLUDE_DIRS}) + set(CMAKE_REQUIRED_LIBRARIES) + foreach(l ${FFTW3F_LIBRARIES}) + find_library(_f ${l} PATHS ${FFTW3F_LIBRARY_DIRS}) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${_f}) + endforeach() + check_c_source_compiles( +"#include +int main() +{ + fftwf_init_threads(); + fftwf_plan_with_nthreads(1); + return 0; +}" _fftw3f_multithread) + if(_fftw3f_multithread) add_definitions(-DRT_FFTW3F_OMP) - set(FFTW3F_LIBRARIES ${FFTW3F_LIBRARIES} ${fftw3f_omp}) + else() + find_library(fftw3f_omp fftw3f_omp PATHS ${FFTW3F_LIBRARY_DIRS}) + if(fftw3f_omp) + add_definitions(-DRT_FFTW3F_OMP) + set(FFTW3F_LIBRARIES ${FFTW3F_LIBRARIES} ${fftw3f_omp}) + endif() endif() endif()