CMakeLists.txt
2.7 KB
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
# cmake 最低版本要求
cmake_minimum_required(VERSION 2.8)
# 编译标志
set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
#"-pthread":指定在编译时链接POSIX线程库,以支持多线程程序。
#"-std=gnu99":指定C语言标准为GNU C99(也就是C99加上GNU的扩展特性),该标准对于一些特性和库的使用是必须的。
#"-lm":指定在编译时链接数学库,以使用一些数学函数。
#"-ldl":指定在编译时链接动态库加载库,以使用动态加载。
#"-lstdc++":指定在编译时链接C++标准库,以使用C++的一些特性和函数。
# 配置编译器
# 交叉编译链①
set(CMAKE_C_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-gcc")
set(CMAKE_CXX_COMPILER "/usr/local/arm/4.9.3/bin/arm-cortexa9-linux-gnueabihf-g++")
# 本地测试编译链
# set(CMAKE_C_COMPILER /usr/bin/gcc)
# set(CMAKE_CXX_COMPILER /usr/bin/g++)
# 工程名 JZ_UART_APP
project(JZ_UART_APP)
# 设置滤波方式 24行不能被改动,因为会被sh修改滤波方式
set(filtering_type directed_stopband_filtering)
# 指定源文件
file(GLOB_RECURSE APPLICATION_SRC application/*.c)
file(GLOB_RECURSE JZSDK_SRC JZsdk/*.c)
file(GLOB_RECURSE JZSDK_UART_DEAL_SRC JZsdk_Uart/*.c)
file(GLOB_RECURSE GIMBAL_SRC Module/Gimbal/*.c)
file(GLOB_RECURSE MEGAPHONE_SRC Module/Megaphone/*.c)
file(GLOB_RECURSE LIGHTING_SRC Module/Lighting/*.c)
file(GLOB_RECURSE MODULE_IRCUT_SRC Module/Ircut/*.c)
file(GLOB_RECURSE MODULE_UICONTROL_SRC Module/UI_control/*.c)
# 生成可执行文件
add_executable(
JZ_UART_APP
${APPLICATION_SRC}
${JZSDK_SRC}
${JZSDK_UART_DEAL_SRC}
${MEGAPHONE_SRC}
${MODULE_IRCUT_SRC}
${GIMBAL_SRC}
${MODULE_UICONTROL_SRC}
${LIGHTING_SRC}
)
# 头文件路径
include_directories(./application)
include_directories(./JZsdk)
include_directories(./JZsdk_Uart)
include_directories(./Module/Megaphone)
include_directories(./Module/Ircut)
include_directories(./Module/Ircut/H3_ircut/wiringPi)
include_directories(./Module/Gimbal)
include_directories(./Module/Lighting)
include_directories(./Module/UI_control)
# 库文件路径
if(${filtering_type} STREQUAL "directed_stopband_filtering")
message("Using library for directed stopband filtering")
target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/directed_stopband_filtering/libAudioPlayer.so)
elseif(${filtering_type} STREQUAL "high_pass_filtering")
message("Using library for high pass filtering")
target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/high_pass_filtering/libAudioPlayer.so)
else()
message(FATAL_ERROR "Invalid filtering type")
endif()
target_link_libraries(${PROJECT_NAME}
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/TTS/libmsc.so
${CMAKE_CURRENT_LIST_DIR}/ModuleLib/opus/libopus.so
)