Warning, /graphics/krita/cmake/modules/FindFFTW3.cmake is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2023 L. E. Segovia <amy@amyspark.me>
0002 # SPDX-License-Identifier: BSD-3-Clause
0003 #
0004 #[=======================================================================[.rst:
0005 FindFFTW3
0006 --------------
0007
0008 Find FFTW headers and libraries. There are separate targets for each supported
0009 precision, see below.
0010
0011 Imported Targets
0012 ^^^^^^^^^^^^^^^^
0013
0014 ``FFTW3::fftw3``
0015 The FFTW3 double precision library, if found.
0016
0017 ``FFTW3::fftw3f``
0018 The FFTW3 single precision library, if found.
0019
0020 ``FFTW3::fftw3l``
0021 The FFTW3 long-double precision library, if found.
0022
0023 ``FFTW3::fftw3q``
0024 The FFTW3 quadruple precision library, if found.
0025
0026 ``FFTW3::fftw3_threads``
0027 The threads support library for the FFTW3 double precision library, if found.
0028
0029 ``FFTW3::fftw3f_threads``
0030 The threads support library for the FFTW3 single precision library, if found.
0031
0032 ``FFTW3::fftw3l_threads``
0033 The threads support library for the FFTW3 long-double precision library, if found.
0034
0035 ``FFTW3::fftw3q_threads``
0036 The threads support library for the FFTW3 quadruple precision library, if found.
0037
0038 ``FFTW3::fftw3_openmp``
0039 The OpenMP support library for the FFTW3 double precision library, if found.
0040
0041 ``FFTW3::fftw3f_openmp``
0042 The OpenMP support library for the FFTW3 single precision library, if found.
0043
0044 ``FFTW3::fftw3l_openmp``
0045 The OpenMP support library for the FFTW3 long-double precision library, if found.
0046
0047 ``FFTW3::fftw3q_openmp``
0048 The OpenMP support library for the FFTW3 quadruple precision library, if found.
0049
0050 Result Variables
0051 ^^^^^^^^^^^^^^^^
0052
0053 This will define the following variables in your project:
0054
0055 ``FFTW3_FOUND``
0056 true if (the requested version of) FFTW3 is available.
0057 ``FFTW3_VERSION``
0058 the version of FFTW3.
0059 ``FFTW3_LIBRARIES``
0060 the libraries to link against to use FFTW3.
0061 ``FFTW3_INCLUDE_DIRS``
0062 where to find the FFTW3 headers.
0063 ``FFTW3_COMPILE_OPTIONS``
0064 this should be passed to target_compile_options(), if the
0065 target is not used for linking
0066
0067 #]=======================================================================]
0068
0069 include(FindPackageHandleStandardArgs)
0070
0071 set(PKG_FFTW_CONFIG_DIR CACHE STRING "PkgConfig path for locating the package modules")
0072 foreach(_dir ${CMAKE_PREFIX_PATH})
0073 list(APPEND PKG_FFTW_CONFIG_DIR ${_dir}/lib/cmake/fftw3)
0074 endforeach()
0075 mark_as_advanced(PKG_FFTW_CONFIG_DIR)
0076
0077 find_package(FFTW3 QUIET NO_MODULE
0078 HINTS ${PKG_FFTW_CONFIG_DIR} /usr/lib/cmake/fftw3 /usr/local/lib/cmake/fftw3
0079 )
0080 mark_as_advanced(FFTW3_DIR)
0081
0082 # if we found the FFTW3 CMake package then we can start
0083 # looking up the various precision versions.
0084 # they're exported separately, see e.g.
0085 # https://archlinux.org/packages/extra/x86_64/fftw/
0086 # https://github.com/microsoft/vcpkg/blob/a325228200d7f229f3337e612e0077f2a5307090/ports/fftw3/portfile.cmake
0087 # https://github.com/Homebrew/homebrew-core/blob/43c39073420de6975f20ac96e98dc822338a3df3/Formula/fftw.rb
0088 if(FFTW3_FOUND)
0089 find_package(FFTW3f QUIET NO_MODULE
0090 HINTS ${PKG_FFTW_CONFIG_DIR} /usr/lib/cmake/fftw3 /usr/local/lib/cmake/fftw3
0091 )
0092 mark_as_advanced(FFTW3f_DIR)
0093
0094 find_package(FFTW3l QUIET NO_MODULE
0095 HINTS ${PKG_FFTW_CONFIG_DIR} /usr/lib/cmake/fftw3 /usr/local/lib/cmake/fftw3
0096 )
0097 mark_as_advanced(FFTW3l_DIR)
0098
0099 find_package(FFTW3q QUIET NO_MODULE
0100 HINTS ${PKG_FFTW_CONFIG_DIR} /usr/lib/cmake/fftw3 /usr/local/lib/cmake/fftw3
0101 )
0102 mark_as_advanced(FFTW3q_DIR)
0103
0104 # As of fftw3 3.3.10, the precision targets are not
0105 # available because the library doesn't implement
0106 # exporting properly; FFTW3LibraryDepends.cmake
0107 # is fixed to the last built precision.
0108 # Additionally, the OMP and threads libraries
0109 # do not have targets altogether.
0110 #
0111 # So reconstruct the targets manually.
0112
0113 # if (TARGET FFTW3::fftw3f)
0114 # set(FFTW3_fftw3f_FOUND ON)
0115 # else ()
0116 # set(FFTW3_fftw3f_FOUND OFF)
0117 # endif ()
0118
0119 # if (TARGET FFTW3::fftw3l)
0120 # set(FFTW3_fftw3l_FOUND ON)
0121 # else ()
0122 # set(FFTW3_fftw3l_FOUND OFF)
0123 # endif ()
0124
0125 # if (TARGET FFTW3::fftw3q)
0126 # set(FFTW3_fftw3q_FOUND ON)
0127 # else ()
0128 # set(FFTW3_fftw3q_FOUND OFF)
0129 # endif ()
0130
0131 # if (TARGET FFTW3::fftw3f_omp)
0132 # set(FFTW3_fftw3f_FOUND ON)
0133 # else ()
0134 # set(FFTW3_fftw3f_FOUND OFF)
0135 # endif ()
0136
0137 # if (TARGET FFTW3::fftw3l_omp)
0138 # set(FFTW3_fftw3l_FOUND ON)
0139 # else ()
0140 # set(FFTW3_fftw3l_FOUND OFF)
0141 # endif ()
0142
0143 # if (TARGET FFTW3::fftw3q_omp)
0144 # set(FFTW3_fftw3q_omp_FOUND ON)
0145 # else ()
0146 # set(FFTW3_fftw3q_omp_FOUND OFF)
0147 # endif ()
0148
0149 # if (TARGET FFTW3::fftw3f_threads)
0150 # set(FFTW3_fftw3f_FOUND ON)
0151 # else ()
0152 # set(FFTW3_fftw3f_FOUND OFF)
0153 # endif ()
0154
0155 # if (TARGET FFTW3::fftw3l_threads)
0156 # set(FFTW3_fftw3l_threads_FOUND ON)
0157 # else ()
0158 # set(FFTW3_fftw3l_threads_FOUND OFF)
0159 # endif ()
0160
0161 # if (TARGET FFTW3::fftw3q_threads)
0162 # set(FFTW3_fftw3q_threads_FOUND ON)
0163 # else ()
0164 # set(FFTW3_fftw3q_threads_FOUND OFF)
0165 # endif ()
0166
0167 # find_package_handle_standard_args(FFTW3
0168 # FOUND_VAR FFTW3_FOUND
0169 # HANDLE_COMPONENTS
0170 # CONFIG_MODE
0171 # )
0172 # return()
0173 endif()
0174
0175 find_package(PkgConfig QUIET)
0176
0177 if(PkgConfig_FOUND)
0178 pkg_check_modules(PKG_FFTW QUIET fftw3)
0179 # Reusing information from the existing CMake package file, if any.
0180 if (NOT FFTW3_VERSION)
0181 set(FFTW3_VERSION ${PKG_FFTW_VERSION})
0182 endif()
0183 set(FFTW3_COMPILE_OPTIONS "${PKG_FFTW_CFLAGS};${PKG_FFTW_CFLAGS_OTHER}")
0184
0185 pkg_check_modules(PKG_FFTW_OMP QUIET fftw3_omp)
0186 pkg_check_modules(PKG_FFTW_THREADS QUIET fftw3_threads)
0187
0188 pkg_check_modules(PKG_FFTW_SINGLE QUIET fftw3f)
0189 pkg_check_modules(PKG_FFTW_LONGDOUBLE QUIET fftw3l)
0190 pkg_check_modules(PKG_FFTW_QUAD QUIET fftw3q)
0191
0192 pkg_check_modules(PKG_FFTW_SINGLE_OMP QUIET fftw3f_omp)
0193 pkg_check_modules(PKG_FFTW_LONGDOUBLE_OMP QUIET fftw3l_omp)
0194 pkg_check_modules(PKG_FFTW_QUAD_OMP QUIET fftw3q_omp)
0195
0196 pkg_check_modules(PKG_FFTW_SINGLE_THREADS QUIET fftw3f_omp)
0197 pkg_check_modules(PKG_FFTW_LONGDOUBLE_THREADS QUIET fftw3l_omp)
0198 pkg_check_modules(PKG_FFTW_QUAD_OMP QUIET fftw3q_omp)
0199 endif()
0200
0201 find_path(FFTW3_INCLUDE_DIR
0202 NAMES "fftw3.h"
0203 HINTS ${FFTW3_INCLUDE_DIRS} ${PKG_FFTW_INCLUDEDIR} ${PKG_FFTW_INCLUDE_DIRS}
0204 )
0205
0206 find_library(FFTW3_LIBRARY
0207 NAMES fftw3 libfftw3
0208 HINTS ${FFTW3_LIBRARY_DIRS} ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0209 )
0210
0211 # There's nothing in the FFTW3 headers that could be used to detect the exact
0212 # FFTW3 version being used so don't attempt to do so. A version can only be found
0213 # through pkg-config
0214 if (NOT FFTW3_VERSION)
0215 message(WARNING "Cannot determine FFTW3 version without pkg-config")
0216 endif ()
0217
0218 if (FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY)
0219 set(FFTW3_fftw3_FOUND ON)
0220 else()
0221 set(FFTW3_fftw3_FOUND OFF)
0222 endif()
0223
0224 # Find components
0225 if ("fftw3_omp" IN_LIST FFTW3_FIND_COMPONENTS)
0226 find_library(FFTW3_fftw3_omp_LIBRARY
0227 NAMES fftw3_omp libfftw3_omp
0228 HINTS
0229 ${FFTW3_LIBRARY_DIRS}
0230 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0231 ${PKG_FFTW_OMP_LIBDIR} ${PKG_FFTW_OMP_LIBRARY_DIRS}
0232 )
0233
0234 if (FFTW3_fftw3_omp_LIBRARY)
0235 set(FFTW3_fftw3_omp_FOUND ON)
0236 else ()
0237 set(FFTW3_fftw3_omp_FOUND OFF)
0238 endif ()
0239 endif ()
0240
0241 if ("fftw3_threads" IN_LIST FFTW3_FIND_COMPONENTS)
0242 find_library(FFTW3_fftw3_threads_LIBRARY
0243 NAMES fftw3_threads libfftw3_threads
0244 HINTS
0245 ${FFTW3_LIBRARY_DIRS}
0246 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0247 ${PKG_FFTW_THREADS_LIBDIR} ${PKG_FFTW_THREADS_LIBRARY_DIRS}
0248 )
0249
0250 if (FFTW3_fftw3_threads_LIBRARY)
0251 set(FFTW3_fftw3_threads_FOUND ON)
0252 else ()
0253 set(FFTW3_fftw3_threads_FOUND OFF)
0254 endif ()
0255 endif ()
0256
0257 if ("fftw3f" IN_LIST FFTW3_FIND_COMPONENTS)
0258 find_library(FFTW3_fftw3f_LIBRARY
0259 NAMES fftw3f libfftw3f
0260 HINTS
0261 ${FFTW3_LIBRARY_DIRS}
0262 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0263 ${PKG_FFTW_SINGLE_LIBDIR} ${PKG_FFTW_SINGLE_LIBRARY_DIRS}
0264 )
0265
0266 if(FFTW3_fftw3f_LIBRARY)
0267 set(FFTW3_fftw3f_FOUND ON)
0268 else()
0269 set(FFTW3_fftw3f_FOUND OFF)
0270 endif ()
0271 endif ()
0272
0273 if ("fftw3f_omp" IN_LIST FFTW3_FIND_COMPONENTS)
0274 find_library(FFTW3_fftw3f_omp_LIBRARY
0275 NAMES fftw3f_omp libfftw3f_omp
0276 HINTS
0277 ${FFTW3_LIBRARY_DIRS}
0278 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0279 ${PKG_FFTW_SINGLE_LIBDIR} ${PKG_FFTW_SINGLE_LIBRARY_DIRS}
0280 ${PKG_FFTW_SINGLE_OMP_LIBDIR} ${PKG_FFTW_SINGLE_OMP_LIBRARY_DIRS}
0281 )
0282
0283 if (FFTW3_fftw3f_omp_LIBRARY)
0284 set(FFTW3_fftw3f_omp_FOUND ON)
0285 else ()
0286 set(FFTW3_fftw3f_omp_FOUND OFF)
0287 endif ()
0288 endif ()
0289
0290 if ("fftw3f_threads" IN_LIST FFTW3_FIND_COMPONENTS)
0291 find_library(FFTW3_fftw3f_threads_LIBRARY
0292 NAMES fftw3f_threads libfftw3f_threads
0293 HINTS
0294 ${FFTW3_LIBRARY_DIRS} ${FFTW3f_LIBRARY_DIRS}
0295 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0296 ${PKG_FFTW_SINGLE_LIBDIR} ${PKG_FFTW_SINGLE_LIBRARY_DIRS}
0297 ${PKG_FFTW_SINGLE_OMP_LIBDIR} ${PKG_FFTW_SINGLE_OMP_LIBRARY_DIRS}
0298 )
0299
0300 if (FFTW3_fftw3f_threads_LIBRARY)
0301 set(FFTW3_fftw3f_threads_FOUND ON)
0302 else ()
0303 set(FFTW3_fftw3f_threads_FOUND OFF)
0304 endif ()
0305 endif ()
0306
0307 if ("fftw3l" IN_LIST FFTW3_FIND_COMPONENTS)
0308 find_library(FFTW3_fftw3l_LIBRARY
0309 NAMES fftw3l libfftw3l
0310 HINTS
0311 ${FFTW3_LIBRARY_DIRS} ${FFTW3l_LIBRARY_DIRS}
0312 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0313 ${PKG_FFTW_LONGDOUBLE_LIBDIR} ${PKG_FFTW_LONGDOUBLE_LIBRARY_DIRS}
0314 )
0315
0316 if(FFTW3_fftw3l_LIBRARY)
0317 set(FFTW3_fftw3l_FOUND ON)
0318 else()
0319 set(FFTW3_fftw3l_FOUND OFF)
0320 endif ()
0321 endif ()
0322
0323 if ("fftw3l_omp" IN_LIST FFTW3_FIND_COMPONENTS)
0324 find_library(FFTW3_fftw3l_omp_LIBRARY
0325 NAMES fftw3l_omp libfftw3l_omp
0326 HINTS
0327 ${FFTW3_LIBRARY_DIRS} ${FFTW3l_LIBRARY_DIRS}
0328 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0329 ${PKG_FFTW_LONGDOUBLE_LIBDIR} ${PKG_FFTW_LONGDOUBLE_LIBRARY_DIRS}
0330 ${PKG_FFTW_LONGDOUBLE_OMP_LIBDIR} ${PKG_FFTW_LONGDOUBLE_OMP_LIBRARY_DIRS}
0331 )
0332
0333 if (FFTW3_fftw3l_omp_LIBRARY)
0334 set(FFTW3_fftw3l_omp_FOUND ON)
0335 else ()
0336 set(FFTW3_fftw3l_omp_FOUND OFF)
0337 endif ()
0338 endif ()
0339
0340 if ("fftw3l_threads" IN_LIST FFTW3_FIND_COMPONENTS)
0341 find_library(FFTW3_fftw3l_threads_LIBRARY
0342 NAMES fftw3l_threads libfftw3l_threads
0343 HINTS
0344 ${FFTW3_LIBRARY_DIRS} ${FFTW3l_LIBRARY_DIRS}
0345 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0346 ${PKG_FFTW_LONGDOUBLE_LIBDIR} ${PKG_FFTW_LONGDOUBLE_LIBRARY_DIRS}
0347 ${PKG_FFTW_LONGDOUBLE_OMP_LIBDIR} ${PKG_FFTW_LONGDOUBLE_OMP_LIBRARY_DIRS}
0348 )
0349
0350 if (FFTW3_fftw3l_threads_LIBRARY)
0351 set(FFTW3_fftw3l_threads_FOUND ON)
0352 else ()
0353 set(FFTW3_fftw3l_threads_FOUND OFF)
0354 endif ()
0355 endif ()
0356
0357 if ("fftw3q" IN_LIST FFTW3_FIND_COMPONENTS)
0358 find_library(FFTW3_fftw3q_LIBRARY
0359 NAMES fftw3q libfftw3q
0360 HINTS
0361 ${FFTW3_LIBRARY_DIRS} ${FFTW3q_LIBRARY_DIRS}
0362 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0363 ${PKG_FFTW_QUAD_LIBDIR} ${PKG_FFTW_QUAD_LIBRARY_DIRS}
0364 )
0365
0366 if(FFTW3_fftw3q_LIBRARY)
0367 set(FFTW3_fftw3q_FOUND ON)
0368 else()
0369 set(FFTW3_fftw3q_FOUND OFF)
0370 endif ()
0371 endif ()
0372
0373 if ("fftw3q_omp" IN_LIST FFTW3_FIND_COMPONENTS)
0374 find_library(FFTW3_fftw3q_omp_LIBRARY
0375 NAMES fftw3q_omp libfftw3q_omp
0376 HINTS
0377 ${FFTW3_LIBRARY_DIRS} ${FFTW3q_LIBRARY_DIRS}
0378 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0379 ${PKG_FFTW_QUAD_LIBDIR} ${PKG_FFTW_QUAD_LIBRARY_DIRS}
0380 ${PKG_FFTW_QUAD_OMP_LIBDIR} ${PKG_FFTW_QUAD_OMP_LIBRARY_DIRS}
0381 )
0382
0383 if (FFTW3_fftw3q_omp_LIBRARY)
0384 set(FFTW3_fftw3q_omp_FOUND ON)
0385 else ()
0386 set(FFTW3_fftw3q_omp_FOUND OFF)
0387 endif ()
0388 endif ()
0389
0390 if ("fftw3q_threads" IN_LIST FFTW3_FIND_COMPONENTS)
0391 find_library(FFTW3_fftw3q_threads_LIBRARY
0392 NAMES fftw3q_threads libfftw3q_threads
0393 HINTS
0394 ${FFTW3_LIBRARY_DIRS} ${FFTW3q_LIBRARY_DIRS}
0395 ${PKG_FFTW_LIBDIR} ${PKG_FFTW_LIBRARY_DIRS}
0396 ${PKG_FFTW_QUAD_LIBDIR} ${PKG_FFTW_QUAD_LIBRARY_DIRS}
0397 ${PKG_FFTW_QUAD_OMP_LIBDIR} ${PKG_FFTW_QUAD_OMP_LIBRARY_DIRS}
0398 )
0399
0400 if (FFTW3_fftw3q_threads_LIBRARY)
0401 set(FFTW3_fftw3q_threads_FOUND ON)
0402 else ()
0403 set(FFTW3_fftw3q_threads_FOUND OFF)
0404 endif ()
0405 endif ()
0406
0407 find_package_handle_standard_args(FFTW3
0408 FOUND_VAR FFTW3_FOUND
0409 REQUIRED_VARS FFTW3_INCLUDE_DIR FFTW3_LIBRARY
0410 HANDLE_COMPONENTS
0411 VERSION_VAR FFTW3_VERSION
0412 )
0413
0414 if (FFTW3_FOUND)
0415 if (FFTW3_LIBRARY AND NOT TARGET FFTW3::fftw3)
0416 add_library(FFTW3::fftw3 UNKNOWN IMPORTED GLOBAL)
0417 set_target_properties(FFTW3::fftw3 PROPERTIES
0418 IMPORTED_LOCATION "${FFTW3_LIBRARY}"
0419 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_CFLAGS};${PKG_FFTW_CFLAGS_OTHER}"
0420 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_INCLUDE_DIRS}"
0421 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_LINK_LIBRARIES}"
0422 )
0423 endif ()
0424
0425 if (FFTW3_fftw3_omp_LIBRARY AND NOT TARGET FFTW3::fftw3_omp)
0426 add_library(FFTW3::fftw3_omp UNKNOWN IMPORTED GLOBAL)
0427 set_target_properties(FFTW3::fftw3_omp PROPERTIES
0428 IMPORTED_LOCATION "${FFTW3_fftw3_omp_LIBRARY}"
0429 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_OMP_CFLAGS};${PKG_FFTW_OMP_CFLAGS_OTHER}"
0430 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_OMP_INCLUDE_DIRS}"
0431 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_OMP_LINK_LIBRARIES}"
0432 )
0433 endif ()
0434
0435 if (FFTW3_fftw3_threads_LIBRARY AND NOT TARGET FFTW3::fftw3_threads)
0436 add_library(FFTW3::fftw3_threads UNKNOWN IMPORTED GLOBAL)
0437 set_target_properties(FFTW3::fftw3 PROPERTIES
0438 IMPORTED_LOCATION "${FFTW3_fftw3_threads_LIBRARY}"
0439 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_THREADS_CFLAGS};${PKG_FFTW_THREADS_CFLAGS_OTHER}"
0440 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_THREADS_INCLUDE_DIRS}"
0441 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_THREADS_LINK_LIBRARIES}"
0442 )
0443 endif ()
0444
0445 if (FFTW3_fftw3f_LIBRARY AND NOT TARGET FFTW3::fftw3f)
0446 add_library(FFTW3::fftw3f UNKNOWN IMPORTED GLOBAL)
0447 set_target_properties(FFTW3::fftw3f PROPERTIES
0448 IMPORTED_LOCATION "${FFTW3_fftw3f_LIBRARY}"
0449 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_SINGLE_CFLAGS};${PKG_FFTW_SINGLE_CFLAGS_OTHER}"
0450 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_SINGLE_INCLUDE_DIRS}"
0451 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_SINGLE_LINK_LIBRARIES}"
0452 )
0453 endif ()
0454
0455 if (FFTW3_fftw3f_omp_LIBRARY AND NOT TARGET FFTW3::fftw3f_omp)
0456 add_library(FFTW3::fftw3f_omp UNKNOWN IMPORTED GLOBAL)
0457 set_target_properties(FFTW3::fftw3f_omp PROPERTIES
0458 IMPORTED_LOCATION "${FFTW3_fftw3f_omp_LIBRARY}"
0459 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_SINGLE_OMP_CFLAGS};${PKG_FFTW_SINGLE_OMP_CFLAGS_OTHER}"
0460 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_SINGLE_OMP_INCLUDE_DIRS}"
0461 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_SINGLE_OMP_LINK_LIBRARIES}"
0462 )
0463 endif ()
0464
0465 if (FFTW3_fftw3f_threads_LIBRARY AND NOT TARGET FFTW3::fftw3f_threads)
0466 add_library(FFTW3::fftw3f_threads UNKNOWN IMPORTED GLOBAL)
0467 set_target_properties(FFTW3::fftw3f PROPERTIES
0468 IMPORTED_LOCATION "${FFTW3_fftw3f_threads_LIBRARY}"
0469 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_THREADS_CFLAGS};${PKG_FFTW_SINGLE_THREADS_CFLAGS_OTHER}"
0470 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_SINGLE_THREADS_INCLUDE_DIRS}"
0471 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_SINGLE_THREADS_LINK_LIBRARIES}"
0472 )
0473 endif ()
0474
0475 if (FFTW3_fftw3l_LIBRARY AND NOT TARGET FFTW3::fftw3l)
0476 add_library(FFTW3::fftw3l UNKNOWN IMPORTED GLOBAL)
0477 set_target_properties(FFTW3::fftw3l PROPERTIES
0478 IMPORTED_LOCATION "${FFTW3_fftw3l_LIBRARY}"
0479 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_LONGDOUBLE_CFLAGS};${PKG_FFTW_LONGDOUBLE_CFLAGS_OTHER}"
0480 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_LONGDOUBLE_INCLUDE_DIRS}"
0481 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_LONGDOUBLE_LINK_LIBRARIES}"
0482 )
0483 endif ()
0484
0485 if (FFTW3_fftw3l_omp_LIBRARY AND NOT TARGET FFTW3::fftw3l_omp)
0486 add_library(FFTW3::fftw3l_omp UNKNOWN IMPORTED GLOBAL)
0487 set_target_properties(FFTW3::fftw3l_omp PROPERTIES
0488 IMPORTED_LOCATION "${FFTW3_fftw3l_omp_LIBRARY}"
0489 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_LONGDOUBLE_OMP_CFLAGS};${PKG_FFTW_LONGDOUBLE_OMP_CFLAGS_OTHER}"
0490 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_LONGDOUBLE_OMP_INCLUDE_DIRS}"
0491 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_LONGDOUBLE_OMP_LINK_LIBRARIES}"
0492 )
0493 endif ()
0494
0495 if (FFTW3_fftw3l_threads_LIBRARY AND NOT TARGET FFTW3::fftw3l_threads)
0496 add_library(FFTW3::fftw3l_threads UNKNOWN IMPORTED GLOBAL)
0497 set_target_properties(FFTW3::fftw3l_threads PROPERTIES
0498 IMPORTED_LOCATION "${FFTW3_fftw3l_threads_LIBRARY}"
0499 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_THREADS_CFLAGS};${PKG_FFTW_LONGDOUBLE_THREADS_CFLAGS_OTHER}"
0500 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_LONGDOUBLE_THREADS_INCLUDE_DIRS}"
0501 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_LONGDOUBLE_THREADS_LINK_LIBRARIES}"
0502 )
0503 endif ()
0504
0505 if (FFTW3_fftw3q_LIBRARY AND NOT TARGET FFTW3::fftw3q)
0506 add_library(FFTW3::fftw3q UNKNOWN IMPORTED GLOBAL)
0507 set_target_properties(FFTW3::fftw3q PROPERTIES
0508 IMPORTED_LOCATION "${FFTW3_fftw3q_LIBRARY}"
0509 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_QUAD_CFLAGS};${PKG_FFTW_QUAD_CFLAGS_OTHER}"
0510 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_QUAD_INCLUDE_DIRS}"
0511 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_QUAD_LINK_LIBRARIES}"
0512 )
0513 endif ()
0514
0515 if (FFTW3_fftw3q_omp_LIBRARY AND NOT TARGET FFTW3::fftw3q_omp)
0516 add_library(FFTW3::fftw3q_omp UNKNOWN IMPORTED GLOBAL)
0517 set_target_properties(FFTW3::fftw3q_omp PROPERTIES
0518 IMPORTED_LOCATION "${FFTW3_fftw3q_omp_LIBRARY}"
0519 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_QUAD_OMP_CFLAGS};${PKG_FFTW_QUAD_OMP_CFLAGS_OTHER}"
0520 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_QUAD_OMP_INCLUDE_DIRS}"
0521 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_QUAD_OMP_LINK_LIBRARIES}"
0522 )
0523 endif ()
0524
0525 if (FFTW3_fftw3q_THREADS_LIBRARY AND NOT TARGET FFTW3::fftw3q_threads)
0526 add_library(FFTW3::fftw3q_threads UNKNOWN IMPORTED GLOBAL)
0527 set_target_properties(FFTW3::fftw3q PROPERTIES
0528 IMPORTED_LOCATION "${FFTW3_fftw3q_threads_LIBRARY}"
0529 INTERFACE_COMPILE_OPTIONS "${PKG_FFTW_THREADS_CFLAGS};${PKG_FFTW_QUAD_THREADS_CFLAGS_OTHER}"
0530 INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR};${PKG_FFTW_QUAD_THREADS_INCLUDE_DIRS}"
0531 INTERFACE_LINK_LIBRARIES "${PKG_FFTW_QUAD_THREADS_LINK_LIBRARIES}"
0532 )
0533 endif ()
0534
0535 mark_as_advanced(
0536 FFTW3_INCLUDE_DIR
0537 FFTW3_LIBRARY
0538 FFTW3_fftw3f_LIBRARY
0539 FFTW3_fftw3f_OMP_LIBRARY
0540 FFTW3_fftw3f_THREADS_LIBRARY
0541 FFTW3_fftw3l_LIBRARY
0542 FFTW3_fftw3l_OMP_LIBRARY
0543 FFTW3_fftw3l_THREADS_LIBRARY
0544 FFTW3_fftw3q_LIBRARY
0545 FFTW3_fftw3q_OMP_LIBRARY
0546 FFTW3_fftw3q_THREADS_LIBRARY
0547 )
0548
0549 set(FFTW3_LIBRARIES
0550 ${FFTW3_LIBRARY}
0551 ${FFTW3_fftw3f_LIBRARY}
0552 ${FFTW3_fftw3f_OMP_LIBRARY}
0553 ${FFTW3_fftw3f_THREADS_LIBRARY}
0554 ${FFTW3_fftw3l_LIBRARY}
0555 ${FFTW3_fftw3l_OMP_LIBRARY}
0556 ${FFTW3_fftw3l_THREADS_LIBRARY}
0557 ${FFTW3_fftw3q_LIBRARY}
0558 ${FFTW3_fftw3q_OMP_LIBRARY}
0559 ${FFTW3_fftw3q_THREADS_LIBRARY}
0560 )
0561 set(FFTW_INCLUDE_DIRS ${FFTW3_INCLUDE_DIR})
0562 endif ()