Skip to content

Commit 8978163

Browse files
committed
Detect fftwf only if ENABLE_FLOAT_FFTW
1 parent 5442afa commit 8978163

2 files changed

Lines changed: 23 additions & 17 deletions

File tree

.github/workflows/cuda.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
nvidia-smi
4747
source toolchain/install/setup
4848
rm -rf build
49-
cmake -B build -G Ninja -DUSE_CUDA=ON -DBUILD_TESTING=ON
49+
cmake -B build -G Ninja -DUSE_CUDA=ON -DBUILD_TESTING=ON -DENABLE_FLOAT_FFTW=ON
5050
cmake --build build -j4
5151
cmake --install build
5252

cmake/FindFFTW3.cmake

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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.
2629
if (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+
)
3235
endif()
3336

3437
# Handle the QUIET and REQUIRED arguments and
3538
# set FFTW3_FOUND to TRUE if all variables are non-zero.
3639
include(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)
4146
endif()
47+
find_package_handle_standard_args(FFTW3 DEFAULT_MSG ${_fftw3_required_vars})
4248

4349
# Copy the results to the output variables and target.
4450
if(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

Comments
 (0)