79 lines
2.5 KiB
CMake
79 lines
2.5 KiB
CMake
|
# ---------------------------------
|
||
|
# Finds FFTW3
|
||
|
#
|
||
|
# Sets define if the lib is found, adds include paths, libs
|
||
|
#
|
||
|
# ---------
|
||
|
|
||
|
GET_PROPERTY(OV_PRINTED GLOBAL PROPERTY OV_TRIED_ThirdPartyFFTW3)
|
||
|
|
||
|
# On windows, we take the itpp one.
|
||
|
|
||
|
IF(WIN32)
|
||
|
FIND_PATH(PATH_FFTW3 include/fftw3.h PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES itpp)
|
||
|
IF(PATH_FFTW3)
|
||
|
SET(FFTW3_FOUND TRUE)
|
||
|
# Of course the name of the library is this or that, depending on the circumstances ...
|
||
|
IF("${PLATFORM_TARGET}" STREQUAL "x64")
|
||
|
FIND_LIBRARY(FFTW3_TMP NAMES libfftw3-3_win64 PATHS ${PATH_FFTW3}/lib NO_DEFAULT_PATH)
|
||
|
IF(FFTW3_TMP)
|
||
|
SET(FFTW3_LIBRARIES libfftw3-3_win64)
|
||
|
ELSE(FFTW3_TMP)
|
||
|
SET(FFTW3_LIBRARIES libfftw3-3)
|
||
|
ENDIF(FFTW3_TMP)
|
||
|
ELSE()
|
||
|
FIND_LIBRARY(FFTW3_TMP NAMES libfftw3-3_win32 PATHS ${PATH_FFTW3}/lib NO_DEFAULT_PATH)
|
||
|
IF(FFTW3_TMP)
|
||
|
SET(FFTW3_LIBRARIES libfftw3-3_win32)
|
||
|
ELSE(FFTW3_TMP)
|
||
|
SET(FFTW3_LIBRARIES libfftw3-3)
|
||
|
ENDIF(FFTW3_TMP)
|
||
|
ENDIF()
|
||
|
|
||
|
SET(FFTW3_INCLUDE_DIRS ${PATH_FFTW3}/include )
|
||
|
SET(FFTW3_LIBRARY_DIRS ${PATH_FFTW3}/lib )
|
||
|
ENDIF(PATH_FFTW3)
|
||
|
ENDIF(WIN32)
|
||
|
|
||
|
IF(UNIX)
|
||
|
INCLUDE("FindThirdPartyPkgConfig")
|
||
|
pkg_check_modules(FFTW3 fftw3)
|
||
|
ENDIF(UNIX)
|
||
|
|
||
|
IF(FFTW3_FOUND)
|
||
|
SET(FFTW3_LOCATED_LIBS "")
|
||
|
OV_PRINT(OV_PRINTED " Found fftw3 includes...")
|
||
|
FOREACH(FFTW3_LIB ${FFTW3_LIBRARIES})
|
||
|
SET(FFTW3_LIB1 "FFTW3_LIB1-NOTFOUND")
|
||
|
# The list is 'fftw3 m' on Fedora 19. CMake gets confused unless the two following lines are used ...
|
||
|
# 1) catch fftw3 if its under dependencies/lib/ (fedora19)
|
||
|
FIND_LIBRARY(FFTW3_LIB1 NAMES ${FFTW3_LIB} PATHS ${LIST_DEPENDENCIES_PATH} PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||
|
# 2) catch fftw3 from found paths, and libm from usual system paths, i.e. default path is allowed. (covers other systems + libm on fedora).
|
||
|
FIND_LIBRARY(FFTW3_LIB1 NAMES ${FFTW3_LIB} PATHS ${FFTW3_LIBRARY_DIRS})
|
||
|
IF(FFTW3_LIB1)
|
||
|
OV_PRINT(OV_PRINTED " [ OK ] Third party lib ${FFTW3_LIB1}")
|
||
|
LIST(APPEND FFTW3_LOCATED_LIBS ${FFTW3_LIB1})
|
||
|
ELSE(FFTW3_LIB1)
|
||
|
OV_PRINT(OV_PRINTED " [FAILED] Third party lib ${FFTW3_LIB}")
|
||
|
SET(FFTW3_FOUND "-NOTFOUND")
|
||
|
BREAK()
|
||
|
ENDIF(FFTW3_LIB1)
|
||
|
ENDFOREACH(FFTW3_LIB)
|
||
|
ENDIF(FFTW3_FOUND)
|
||
|
|
||
|
IF(FFTW3_FOUND)
|
||
|
INCLUDE_DIRECTORIES(${FFTW3_INCLUDE_DIRS})
|
||
|
ADD_DEFINITIONS(${FFTW3_CFLAGS})
|
||
|
|
||
|
FOREACH(FFTW3_LIB ${FFTW3_LOCATED_LIBS})
|
||
|
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${FFTW3_LIB})
|
||
|
ENDFOREACH(FFTW3_LIB)
|
||
|
|
||
|
ADD_DEFINITIONS(-DTARGET_HAS_ThirdPartyFFTW3)
|
||
|
ELSE(FFTW3_FOUND)
|
||
|
OV_PRINT(OV_PRINTED " FAILED to find fftw3...")
|
||
|
ENDIF(FFTW3_FOUND)
|
||
|
|
||
|
SET_PROPERTY(GLOBAL PROPERTY OV_TRIED_ThirdPartyFFTW3 "Yes")
|
||
|
|