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 ()