open_toontown_panda3d/cmake/modules/FindFFTW.cmake

109 lines
2.9 KiB
CMake

# Filename: FindFFTW.cmake
# Author: Unknown (???), kestred (29 Nov, 2013)
#
# Usage:
# find_package(FFTW [REQUIRED] [QUIET])
#
# Once done this will define:
# FFTW_FOUND - true if fftw is found on the system
# FFTW_INCLUDE_DIR - the fftw include directory
# FFTW_LIBRARY_DIR - the fftw library directory
# FFTW_LIBRARY - the path to the library binary
#
# The following variables will be checked by the function
# FFTW_ROOT - if set, the libraries are exclusively searched under this path
#
if(NOT FFTW_INCLUDE_DIR OR NOT FFTW_LIBRARY_DIR)
# Check if we can use PkgConfig
find_package(PkgConfig QUIET)
#Determine from PKG
if(PKG_CONFIG_FOUND AND NOT FFTW_ROOT)
pkg_check_modules(PKG_FFTW QUIET "fftw3")
endif()
if(FFTW_ROOT)
# Try to find headers under root
find_path(FFTW_INCLUDE_DIR
NAMES "fftw3.h"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "include"
NO_DEFAULT_PATH
)
# Try to find library under root
find_library(FFTW_LIBRARY
NAMES "fftw3"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "lib" "lib64"
NO_DEFAULT_PATH
)
find_library(FFTW_FFTWF_LIBRARY
NAMES "fftw3f"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "lib" "lib64"
NO_DEFAULT_PATH
)
find_library(FFTW_FFTWL_LIBRARY
NAMES "fftw3l"
PATHS ${FFTW_ROOT}
PATH_SUFFIXES "lib" "lib64"
NO_DEFAULT_PATH
)
else()
# Find headers the normal way
find_path(FFTW_INCLUDE_DIR
NAMES "fftw3.h"
PATHS ${PKG_FFTW_INCLUDE_DIRS}
${INCLUDE_INSTALL_DIR}
"/usr/include"
"/usr/local/include"
PATH_SUFFIXES "" "fftw"
)
# Find library the normal way
find_library(FFTW_LIBRARY
NAMES "fftw3"
PATHS ${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
"/usr"
"/usr/local"
PATH_SUFFIXES "" "lib" "lib32" "lib64"
)
find_library(FFTW_FFTWF_LIBRARY
NAMES "fftw3f"
PATHS ${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
"/usr"
"/usr/local"
PATH_SUFFIXES "" "lib" "lib32" "lib64"
)
find_library(FFTW_FFTWL_LIBRARY
NAMES "fftw3l"
PATHS ${PKG_FFTW_LIBRARY_DIRS}
${LIB_INSTALL_DIR}
"/usr"
"/usr/local"
PATH_SUFFIXES "" "lib" "lib32" "lib64"
)
endif()
# Get the directory conaining FFTW_LIBRARY
get_filename_component(FFTW_LIBRARY_DIR "${FFTW_LIBRARY}" PATH)
set(FFTW_LIBRARY_DIR "${FFTW_LIBRARY_DIR}" CACHE PATH "The path to fftw's library directory.") # Library path
mark_as_advanced(FFTW_INCLUDE_DIR)
mark_as_advanced(FFTW_LIBRARY_DIR)
mark_as_advanced(FFTW_LIBRARY)
mark_as_advanced(FFTW_FFTWF_LIBRARY)
mark_as_advanced(FFTW_FFTWL_LIBRARY)
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(FFTW DEFAULT_MSG FFTW_LIBRARY FFTW_INCLUDE_DIR FFTW_LIBRARY_DIR)