From 0f110f5bd89d6e4fbd37146873fed44d54a4e655 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Tue, 7 Jan 2025 18:39:39 -0800 Subject: [PATCH] Unconditionally Search for Both --- Tools/CMake/FindAMReXFFTW.cmake | 66 ++++++++++++++++----------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/Tools/CMake/FindAMReXFFTW.cmake b/Tools/CMake/FindAMReXFFTW.cmake index a276c53f831..0f6455b3a18 100644 --- a/Tools/CMake/FindAMReXFFTW.cmake +++ b/Tools/CMake/FindAMReXFFTW.cmake @@ -102,47 +102,47 @@ if(NOT AMReX_FFTW_SEARCH IN_LIST AMReX_FFTW_SEARCH_VALUES) endif() mark_as_advanced(AMReX_FFTW_SEARCH) -# floating point precision suffixes: float, double and quad precision -if(AMReX_PRECISION STREQUAL "DOUBLE") - set(HFFTWp "") -else() - set(HFFTWp "f") -endif() +# Create imported target +add_library(AMReX::FFTW INTERFACE IMPORTED GLOBAL) -if(AMReX_FFTW_SEARCH STREQUAL CMAKE) - find_package(FFTW3${HFFTWp} CONFIG REQUIRED) - set(AMReX_FFTW_LIBRARY_DIRS "${FFTW3${HFFTWp}_LIBRARY_DIRS}") - message(STATUS "Found FFTW: ${FFTW3${HFFTWp}_DIR} (found version \"${FFTW3${HFFTWp}_VERSION}\")") -else() - find_package(PkgConfig REQUIRED QUIET) - pkg_check_modules(fftw3${HFFTWp} REQUIRED IMPORTED_TARGET fftw3${HFFTWp}) - message(STATUS "Found FFTW: ${fftw3${HFFTWp}_PREFIX}") - if(fftw3${HFFTWp}_LIBRARY_DIRS) - set(AMReX_FFTW_LIBRARY_DIRS "${fftw3${HFFTWp}_LIBRARY_DIRS}") +function(fftw_find_precision HFFTWp) + if(AMReX_FFTW_SEARCH STREQUAL CMAKE) + find_package(FFTW3${HFFTWp} CONFIG REQUIRED) + set(AMReX_FFTW_LIBRARY_DIRS "${FFTW3${HFFTWp}_LIBRARY_DIRS}") + message(STATUS "Found FFTW: ${FFTW3${HFFTWp}_DIR} (found version \"${FFTW3${HFFTWp}_VERSION}\")") else() - set(AMReX_FFTW_LIBRARY_DIRS "${fftw3${HFFTWp}_LIBDIR}") + find_package(PkgConfig REQUIRED QUIET) + pkg_check_modules(fftw3${HFFTWp} REQUIRED IMPORTED_TARGET fftw3${HFFTWp}) + message(STATUS "Found FFTW: ${fftw3${HFFTWp}_PREFIX}") + if(fftw3${HFFTWp}_LIBRARY_DIRS) + set(AMReX_FFTW_LIBRARY_DIRS "${fftw3${HFFTWp}_LIBRARY_DIRS}") + else() + set(AMReX_FFTW_LIBRARY_DIRS "${fftw3${HFFTWp}_LIBDIR}") + endif() endif() -endif() -# Create imported target -add_library(AMReX::FFTW INTERFACE IMPORTED GLOBAL) -if(AMReX_FFTW_SEARCH STREQUAL CMAKE) - target_link_libraries(AMReX::FFTW INTERFACE FFTW3::fftw3${HFFTWp}) -else() - target_link_libraries(AMReX::FFTW INTERFACE PkgConfig::fftw3${HFFTWp}) -endif() + if(AMReX_FFTW_SEARCH STREQUAL CMAKE) + target_link_libraries(AMReX::FFTW INTERFACE FFTW3::fftw3${HFFTWp}) + else() + target_link_libraries(AMReX::FFTW INTERFACE PkgConfig::fftw3${HFFTWp}) + endif() -if(AMReX_OMP) - if(AMReX_FFTW_IGNORE_OMP) - message(STATUS "FFTW: Requested to IGNORE OpenMP support") + if(AMReX_OMP) + if(AMReX_FFTW_IGNORE_OMP) + message(STATUS "FFTW: Requested to IGNORE OpenMP support") + else() + fftw_check_omp("${AMReX_FFTW_LIBRARY_DIRS}" "${HFFTWp}") + endif() else() - fftw_check_omp("${AMReX_FFTW_LIBRARY_DIRS}" "${HFFTWp}") + message(STATUS "FFTW: Did NOT search for OpenMP support (AMReX_OMP is not set)") endif() -else() - message(STATUS "FFTW: Did NOT search for OpenMP support (AMReX_OMP is not set)") -endif() +endfunction() + +# floating point precision suffixes: we request float and double precision +fftw_find_precision("") +fftw_find_precision("f") # Vars for CMake config include(FindPackageHandleStandardArgs) find_package_handle_standard_args(AMReXFFTW - HANDLE_COMPONENTS) \ No newline at end of file + HANDLE_COMPONENTS)