blob: 8d522ecb9205b06463164bdf3fe9b9e1de3362b9 (
plain)
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
60
61
62
63
64
65
|
cmake_minimum_required(VERSION 3.14)
project(kissfft LANGUAGES C)
include(GNUInstallDirs)
option(KF_USE_SIMD "Use SIMD" OFF)
option(KF_INSTALL_HEADERS "Install header files" ON)
if (KF_USE_SIMD)
set(KF_SCALAR_TYPE "__m128" CACHE STRING "Definition of kiss_fft_scalar")
else ()
set(KF_SCALAR_TYPE "float" CACHE STRING "Definition of kiss_fft_scalar")
endif ()
# TODO: FIXED_POINT
# TODO: -msse
set(kissfft_sources kiss_fft.c)
if (WIN32 AND BUILD_SHARED_LIBS)
list(APPEND kissfft_sources exports.def)
endif ()
add_library(kissfft ${kissfft_sources})
if (BUILD_SHARED_LIBS)
set_property(
TARGET kissfft
PROPERTY POSITION_INDEPENDENT_CODE ON
)
endif ()
target_include_directories(
kissfft
PUBLIC
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
target_compile_definitions(
kissfft
PUBLIC
$<$<BOOL:${KF_USE_SIMD}>:USE_SIMD>
kiss_fft_scalar=${KF_SCALAR_TYPE}
)
if (KF_INSTALL_HEADERS)
install(
FILES
_kiss_fft_guts.h
kiss_fft.h
kissfft.hh
kissfft_i32.hh
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
endif ()
install(TARGETS kissfft EXPORT unofficial-kissfft-config)
install(
EXPORT unofficial-kissfft-config
NAMESPACE unofficial::kissfft::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/unofficial-kissfft
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
)
|