From 78ce54c73c04e2d5b0ed5d8434be874e100a3ffa Mon Sep 17 00:00:00 2001 From: Christophe Picard <christophe.picard@univ-grenoble-alpes.fr> Date: Thu, 9 Nov 2017 14:12:09 +0100 Subject: [PATCH] Add automatic detection of dynamic extension --- cmake/FindFFTW.cmake | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/cmake/FindFFTW.cmake b/cmake/FindFFTW.cmake index c6a42e4fb..513498171 100644 --- a/cmake/FindFFTW.cmake +++ b/cmake/FindFFTW.cmake @@ -18,11 +18,11 @@ # set(FIND_FFTW_DEBUG OFF) (optional) # set(FIND_FFTW_SHARED_ONLY ON) (optional) # find_package(FFTW -# REQUIRED COMPONENTS Fftw3f Fftw3d -# OPTIONAL_COMPONENTS Fftw3l Fftw3q -# OPTIONAL_COMPONENTS Fftw3f-mpi Fftw3d-mpi Fftw3l-mpi -# OPTIONAL_COMPONENTS Fttw3f-omp Fftw3d-omp Fftw3l-omp Fftw3q-omp -# OPTIONAL_COMPONENTS Fttw3f-threads Fftw3d-threads Fftw3l-threads Fftw3q-threads) +# REQUIRED COMPONENTS fftw3f fftw3d +# OPTIONAL_COMPONENTS fftw3l fftw3q +# OPTIONAL_COMPONENTS fftw3f-mpi fftw3d-mpi fftw3l-mpi +# OPTIONAL_COMPONENTS fftw3f-omp fftw3d-omp fftw3l-omp fftw3q-omp +# OPTIONAL_COMPONENTS fftw3f-threads fftw3d-threads fftw3l-threads fftw3q-threads) # # == Defined variables == # @@ -84,6 +84,17 @@ list(APPEND FFTW_LIBRARIES "") list(APPEND FFTW_DEFINES "") list(APPEND FFTW_COMPILE_FLAGS "") + # -- rename library to match shared or static constraints + #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() + + foreach(fftw_comp ${FFTW_FIND_COMPONENTS}) string(REPLACE "-" "_" fftw_comp_no_dash "${fftw_comp}") string(TOLOWER ${fftw_comp_no_dash} component) @@ -103,12 +114,7 @@ foreach(fftw_comp ${FFTW_FIND_COMPONENTS}) # -- find library name given the component name string(REPLACE "fftw3d" "fftw3" library "${component}") - # -- rename library to match shared or static constraints - if(FIND_FFTW_SHARED_ONLY) - set(library "lib${library}.so") - elseif(FIND_FFTW_STATIC_ONLY) - set(library "lib${library}.a") - endif() + set(library "lib${library}${CMAKE_FIND_LIBRARY_SUFFIXES}") if(FIND_FFTW_DEBUG) message("\tFFTW::${fftw_comp}:${COMPONENT}:${component}, LIB=${library} HEADER=${header}") @@ -257,6 +263,7 @@ list(REMOVE_DUPLICATES FFTW_LIBRARY_DIRS) list(REMOVE_DUPLICATES FFTW_LIBRARIES) list(REMOVE_DUPLICATES FFTW_DEFINES) list(REMOVE_DUPLICATES FFTW_COMPILE_FLAGS) +set( CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV} ) # -- check required variables, version and set FFTW_FOUND to TRUE if ok find_package_handle_standard_args(FFTW FOUND_VAR FFTW_FOUND -- GitLab