File: BALLConfigFFTW.cmake

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 239,848 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; makefile: 93
file content (59 lines) | stat: -rw-r--r-- 2,153 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
SET (BALL_HAS_FFTW TRUE)
SET (BALL_HAS_FFTW_H TRUE)

INCLUDE_DIRECTORIES(${FFTW_INCLUDE})

#If the libraries are set, set the default traits to the favoured
#precision (in our case float is prefered
IF (FFTWL_FOUND)
	SET(BALL_HAS_FFTW_LONG_DOUBLE TRUE)
	SET(FFTW_LIBRARIES ${FFTWL_LIB} ${FFTW_LIBRARIES})
	SET(BALL_FFTW_DEFAULT_TRAITS LongDoubleTraits)
	MESSAGE(STATUS "FFTW: Found long double precision")
ENDIF()

IF (FFTWD_FOUND)
	SET(BALL_HAS_FFTW_DOUBLE TRUE)
	SET(FFTW_LIBRARIES ${FFTWD_LIB} ${FFTW_LIBRARIES})
	SET(BALL_FFTW_DEFAULT_TRAITS DoubleTraits)
	MESSAGE(STATUS "FFTW: Found double precision")
ENDIF()

IF (FFTWF_FOUND)
	SET(BALL_HAS_FFTW_FLOAT TRUE)
	SET(FFTW_LIBRARIES ${FFTWF_LIB} ${FFTW_LIBRARIES})
	SET(BALL_FFTW_DEFAULT_TRAITS FloatTraits)
	MESSAGE(STATUS "FFTW: Found float precision")
ENDIF()

#The user may override these settings
IF (BALL_COMPLEX_PRECISION STREQUAL "float")
	IF (FFTWF_FOUND)
		SET(BALL_FFTW_DEFAULT_TRAITS FloatTraits)
	ELSE()
		MESSAGE(WARNING "An FFTW library needed for ${BALL_COMPLEX_PRECISION} is not available! Thus FFTW-support has been disabled!")
	ENDIF()
ELSEIF(BALL_COMPLEX_PRECISION STREQUAL "double")
	IF (FFTWD_FOUND)
		SET(BALL_FFTW_DEFAULT_TRAITS DoubleTraits)
	ELSE()
		MESSAGE(WARNING "An FFTW library needed for ${BALL_COMPLEX_PRECISION} is not available! Thus FFTW-support has been disabled!")
	ENDIF()
ELSEIF(BALL_COMPLEX_PRECISION STREQUAL "long double")
	IF (FFTWL_FOUND)
		SET(BALL_FFTW_DEFAULT_TRAITS LongDoubleTraits)
	ELSE()
		MESSAGE(WARNING "An FFTW library needed for ${BALL_COMPLEX_PRECISION} is not available! Thus FFTW-support has been disabled!")
	ENDIF()
ENDIF()

#However we still have to make some settings depending on the selected precision
IF (BALL_FFTW_DEFAULT_TRAITS STREQUAL "FloatTraits")
	SET(BALL_COMPLEX_PRECISION "float")
ELSEIF (BALL_FFTW_DEFAULT_TRAITS STREQUAL "DoubleTraits")
	SET(BALL_COMPLEX_PRECISION "double")
ELSEIF (BALL_FFTW_DEFAULT_TRAITS STREQUAL "LongDoubleTraits")
	SET(BALL_COMPLEX_PRECISION "long double")
ELSE()
	MESSAGE(WARNING "Installed FFTW library features no suitable complex precision (neither float nor double nor long double)")
ENDIF()