forked from breakfastquay/rubberband
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
74 lines (65 loc) · 1.84 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.15)
project(rubberband LANGUAGES C CXX)
# 基础配置
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# 优化选项
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ffast-math -ftree-vectorize")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ffast-math -ftree-vectorize")
# 源文件定义
set(LIB_SOURCES
src/rubberband-c.cpp
src/RubberBandStretcher.cpp
src/faster/AudioCurveCalculator.cpp
src/faster/CompoundAudioCurve.cpp
src/faster/HighFrequencyAudioCurve.cpp
src/faster/SilentAudioCurve.cpp
src/faster/PercussiveAudioCurve.cpp
src/faster/R2Stretcher.cpp
src/faster/StretcherChannelData.cpp
src/faster/StretcherProcess.cpp
src/common/Allocators.cpp
src/common/BQResampler.cpp
src/common/FFT.cpp
src/common/Log.cpp
src/common/Profiler.cpp
src/common/Resampler.cpp
src/common/StretchCalculator.cpp
src/common/sysutils.cpp
src/common/mathmisc.cpp
src/common/Thread.cpp
src/finer/R3Stretcher.cpp
)
# 头文件包含
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}/rubberband
)
# 预处理器定义
add_compile_definitions(
USE_BQRESAMPLER
USE_BUILTIN_FFT
NO_THREAD_CHECKS
USE_PTHREADS
NO_TIMING
HAVE_POSIX_MEMALIGN
NDEBUG
)
# 构建静态库
add_library(rubberband STATIC ${LIB_SOURCES})
# 依赖项配置
find_package(Threads REQUIRED)
target_link_libraries(rubberband PUBLIC Threads::Threads)
install(TARGETS rubberband
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin # Windows平台需要
INCLUDES DESTINATION include/rubberband
)
install(FILES
rubberband/rubberband-c.h
rubberband/RubberBandStretcher.h
DESTINATION include/rubberband
)