diff --git a/CMakeLists.txt b/CMakeLists.txt index 4381fe533cd7..a0c12a0f2677 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2499,7 +2499,7 @@ if(KEYFINDER) target_link_libraries(mixxx-lib PRIVATE KeyFinder::KeyFinder) else() # If KeyFinder is built statically, we need FFTW - find_package(FFTW REQUIRED) + find_package(FFTW3 REQUIRED) set(KeyFinder_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/lib/keyfinder-install") set(KeyFinder_LIBRARY "${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}keyfinder${CMAKE_STATIC_LIBRARY_SUFFIX}") @@ -2560,7 +2560,7 @@ if(KEYFINDER) add_library(mixxx-keyfinder STATIC IMPORTED) add_dependencies(mixxx-keyfinder libkeyfinder) set_target_properties(mixxx-keyfinder PROPERTIES IMPORTED_LOCATION "${KeyFinder_INSTALL_DIR}/${KeyFinder_LIBRARY}") - target_link_libraries(mixxx-keyfinder INTERFACE FFTW::FFTW) + target_link_libraries(mixxx-keyfinder INTERFACE FFTW3::fftw3) target_include_directories(mixxx-keyfinder INTERFACE "${KeyFinder_INSTALL_DIR}/include") target_link_libraries(mixxx-lib PRIVATE mixxx-keyfinder) endif() diff --git a/cmake/modules/FindChromaprint.cmake b/cmake/modules/FindChromaprint.cmake index d7b136318de2..9a8b21177c63 100644 --- a/cmake/modules/FindChromaprint.cmake +++ b/cmake/modules/FindChromaprint.cmake @@ -96,9 +96,9 @@ if(Chromaprint_FOUND) CHROMAPRINT_NODLL ) endif() - find_package(FFTW REQUIRED) + find_package(FFTW3 REQUIRED) set_property(TARGET Chromaprint::Chromaprint APPEND PROPERTY INTERFACE_LINK_LIBRARIES - FFTW::FFTW + FFTW3::fftw3 ) endif() endif() diff --git a/cmake/modules/FindFFTW.cmake b/cmake/modules/FindFFTW.cmake deleted file mode 100644 index a3fb8265c6ba..000000000000 --- a/cmake/modules/FindFFTW.cmake +++ /dev/null @@ -1,75 +0,0 @@ -# This file is part of Mixxx, Digital DJ'ing software. -# Copyright (C) 2001-2024 Mixxx Development Team -# Distributed under the GNU General Public Licence (GPL) version 2 or any later -# later version. See the LICENSE file for details. - -#[=======================================================================[.rst: -FindFFTW --------- - -Finds the FFTW library. - -Imported Targets -^^^^^^^^^^^^^^^^ - -This module provides the following imported targets, if found: - -``FFTW::FFTW`` - The FFTW library - -Result Variables -^^^^^^^^^^^^^^^^ - -This will define the following variables: - -``FFTW_FOUND`` - True if the system has the FFTW library. -``FFTW_INCLUDE_DIRS`` - Include directories needed to use FFTW. -``FFTW_LIBRARIES`` - Libraries needed to link to FFTW. - -Cache Variables -^^^^^^^^^^^^^^^ - -The following cache variables may also be set: - -``FFTW_INCLUDE_DIR`` - The directory containing ``fftw3.h``. -``FFTW_LIBRARY`` - The path to the FFTW library. - -#]=======================================================================] - -find_path(FFTW_INCLUDE_DIR - NAMES fftw3.h - DOC "FFTW include directory") -mark_as_advanced(FFTW_INCLUDE_DIR) - -find_library(FFTW_LIBRARY - NAMES fftw fftw3 fftw-3.3 - DOC "FFTW library" -) -mark_as_advanced(FFTW_LIBRARY) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - FFTW - DEFAULT_MSG - FFTW_LIBRARY - FFTW_INCLUDE_DIR -) - -if(FFTW_FOUND) - set(FFTW_LIBRARIES "${FFTW_LIBRARY}") - set(FFTW_INCLUDE_DIRS "${FFTW_INCLUDE_DIR}") - - if(NOT TARGET FFTW::FFTW) - add_library(FFTW::FFTW UNKNOWN IMPORTED) - set_target_properties(FFTW::FFTW - PROPERTIES - IMPORTED_LOCATION "${FFTW_LIBRARY}" - INTERFACE_INCLUDE_DIRECTORIES "${FFTW_INCLUDE_DIR}" - ) - endif() -endif() diff --git a/cmake/modules/FindFFTW3.cmake b/cmake/modules/FindFFTW3.cmake new file mode 100644 index 000000000000..f1b7885936aa --- /dev/null +++ b/cmake/modules/FindFFTW3.cmake @@ -0,0 +1,82 @@ +#[=======================================================================[.rst: +FindFFTW3 +-------- + +Finds the FFTW3 library. + +Imported Targets +^^^^^^^^^^^^^^^^ + +This module provides the following imported targets, if found: + +``FFTW3::fftw3`` + The FFTW3 library + +Result Variables +^^^^^^^^^^^^^^^^ + +This will define the following variables: + +``FFTW3_FOUND`` + True if the system has the FFTW3 library. +``FFTW3_INCLUDE_DIRS`` + Include directories needed to use FFTW3. +``FFTW3_LIBRARIES`` + Libraries needed to link to FFTW3. + +Cache Variables +^^^^^^^^^^^^^^^ + +The following cache variables may also be set: + +``FFTW3_INCLUDE_DIR`` + The directory containing ``fftw3.h``. +``FFTW3_LIBRARY`` + The path to the FFTW3 library. + +#]=======================================================================] + +find_package(PkgConfig QUIET) +if(PkgConfig_FOUND) + pkg_check_modules(PC_Fftw3 QUIET fftw3) +endif() + +find_path(FFTW3_INCLUDE_DIR + NAMES fftw3.h + HINTS ${PC_Fftw3_INCLUDE_DIRS} + DOC "FFTW3 include directory") +mark_as_advanced(FFTW3_INCLUDE_DIR) + +find_library(FFTW3_LIBRARY + NAMES fftw3 fftw-3.3 + HINTS ${PC_Fftw3_LIBRARY_DIRS} + DOC "FFTW3 library" +) +mark_as_advanced(FFTW3_LIBRARY) + +if(DEFINED PC_Fftw3_VERSION AND NOT PC_Fftw3_VERSION STREQUAL "") + set(FFTW3_VERSION "${PC_Fftw3_VERSION}") +endif() + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args( + FFTW3 + REQUIRED_VARS FFTW3_LIBRARY FFTW3_INCLUDE_DIR + VERSION_VAR FFTW3_VERSION +) + +if(FFTW3_FOUND) + set(FFTW3_LIBRARIES "${FFTW3_LIBRARY}") + set(FFTW3_INCLUDE_DIRS "${FFTW3_INCLUDE_DIR}") + set(FFTW3_DEFINITIONS ${PC_Fftw3_CFLAGS_OTHER}) + + if(NOT TARGET FFTW3::fftw3) + add_library(FFTW3::fftw3 UNKNOWN IMPORTED) + set_target_properties(FFTW3::fftw3 + PROPERTIES + IMPORTED_LOCATION "${FFTW3_LIBRARY}" + INTERFACE_COMPILE_OPTIONS "${PC_Fftw3_CFLAGS_OTHER}" + INTERFACE_INCLUDE_DIRECTORIES "${FFTW3_INCLUDE_DIR}" + ) + endif() +endif() diff --git a/cmake/modules/FindKeyFinder.cmake b/cmake/modules/FindKeyFinder.cmake index d6c9fc230ee7..c54750a728fd 100644 --- a/cmake/modules/FindKeyFinder.cmake +++ b/cmake/modules/FindKeyFinder.cmake @@ -89,9 +89,9 @@ if(KeyFinder_FOUND) ) is_static_library(KeyFinder_IS_STATIC KeyFinder::KeyFinder) if(KeyFinder_IS_STATIC) - find_package(FFTW REQUIRED) + find_package(FFTW3 REQUIRED) set_property(TARGET KeyFinder::KeyFinder APPEND PROPERTY INTERFACE_LINK_LIBRARIES - FFTW::FFTW + FFTW3::fftw3 ) endif() endif() diff --git a/cmake/modules/Findrubberband.cmake b/cmake/modules/Findrubberband.cmake index a0c0da2786b6..2a5f629c672f 100644 --- a/cmake/modules/Findrubberband.cmake +++ b/cmake/modules/Findrubberband.cmake @@ -91,10 +91,10 @@ if(rubberband_FOUND) set_property(TARGET rubberband::rubberband APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${SAMPLERATE_LIBRARY} ) - find_package(FFTW) + find_package(FFTW3) if (FFTW_FOUND) set_property(TARGET rubberband::rubberband APPEND PROPERTY INTERFACE_LINK_LIBRARIES - FFTW::FFTW + FFTW3::fftw3 ) endif() find_package(Sleef)