-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathLibStftPitchShift.cmake
executable file
·97 lines (73 loc) · 2.19 KB
/
LibStftPitchShift.cmake
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
cmake_minimum_required(VERSION 3.1...3.18)
project(stftpitchshift)
include(GNUInstallDirs)
add_library(${PROJECT_NAME})
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" VERSION)
string(STRIP "${VERSION}" VERSION)
set_target_properties(${PROJECT_NAME}
PROPERTIES VERSION "${VERSION}"
)
set_target_properties(${PROJECT_NAME}
PROPERTIES SOVERSION 2
)
set_property(
TARGET ${PROJECT_NAME}
PROPERTY INTERFACE_${PROJECT_NAME}_MAJOR_VERSION 2)
set_property(
TARGET ${PROJECT_NAME} APPEND
PROPERTY COMPATIBLE_INTERFACE_STRING ${PROJECT_NAME}_MAJOR_VERSION)
set_target_properties(${PROJECT_NAME}
PROPERTIES OUTPUT_NAME "stftpitchshift"
)
set(HEADERS
"${CMAKE_CURRENT_LIST_DIR}/Arctangent.h"
"${CMAKE_CURRENT_LIST_DIR}/Cepster.h"
"${CMAKE_CURRENT_LIST_DIR}/Dump.h"
"${CMAKE_CURRENT_LIST_DIR}/FFT.h"
"${CMAKE_CURRENT_LIST_DIR}/Normalizer.h"
"${CMAKE_CURRENT_LIST_DIR}/Pitcher.h"
"${CMAKE_CURRENT_LIST_DIR}/Resampler.h"
"${CMAKE_CURRENT_LIST_DIR}/RFFT.h"
"${CMAKE_CURRENT_LIST_DIR}/STFT.h"
"${CMAKE_CURRENT_LIST_DIR}/StftPitchShift.h"
"${CMAKE_CURRENT_LIST_DIR}/StftPitchShiftCore.h"
"${CMAKE_CURRENT_LIST_DIR}/Timer.h"
"${CMAKE_CURRENT_LIST_DIR}/Version.h"
"${CMAKE_CURRENT_LIST_DIR}/Vocoder.h"
)
set(SOURCES
"${CMAKE_CURRENT_LIST_DIR}/StftPitchShift.cpp"
)
target_sources(${PROJECT_NAME}
PRIVATE ${HEADERS} ${SOURCES}
)
set_target_properties(${PROJECT_NAME}
PROPERTIES PUBLIC_HEADER "${HEADERS}"
)
target_include_directories(${PROJECT_NAME}
PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/..>"
INTERFACE "$<INSTALL_INTERFACE:include/StftPitchShift>"
)
target_compile_features(${PROJECT_NAME}
PRIVATE cxx_std_20
)
if(FASTMATH)
message(STATUS "Enabling fast math")
if(MSVC)
target_compile_options(${PROJECT_NAME}
PRIVATE /fp:fast)
else()
target_compile_options(${PROJECT_NAME}
PRIVATE -ffast-math)
endif()
endif()
if(FASTATAN)
message(STATUS "Defining ENABLE_ARCTANGENT_APPROXIMATION")
target_compile_definitions(${PROJECT_NAME}
PRIVATE -DENABLE_ARCTANGENT_APPROXIMATION)
endif()
install(
TARGETS ${PROJECT_NAME}
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
PUBLIC_HEADER DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/StftPitchShift"
)