CMakeLists.txt
5.0 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# cmake 最低版本要求 第三行名字不能动
cmake_minimum_required(VERSION 2.8)
project(JZ_UART_APP)
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_EXE_LINKER_FLAGS "-pthread")
#预留行
set(DEVICE_TYPE MEGAPHONE)
#预留行
#预留行
#预留行
#预留行
#预留行
#预留行
set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../../")
# 包含模块配置
include(${ROOT_DIRS}CmakeConfig/Compiler.cmake)
include(${ROOT_DIRS}CmakeConfig/ModuleConfig.cmake)
include(${ROOT_DIRS}CmakeConfig/SubsidiaryThirdPartyConfig.cmake)
# 指定源文件
file(GLOB_RECURSE JZSDK_COMMON_SRC ${ROOT_DIRS}JZsdk_Common/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_COMMON_SRC})
file(GLOB_RECURSE JZSDK_CONFIG_SRC ${ROOT_DIRS}JZsdk_Config/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_CONFIG_SRC})
file(GLOB_RECURSE JZSDK_HAL_SRC ${ROOT_DIRS}JZsdk_hal/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_HAL_SRC})
file(GLOB_RECURSE JZSDK_OSAL_SRC ${ROOT_DIRS}JZsdk_osal/*.c)
list(APPEND ALL_SRC_FILES ${JZSDK_OSAL_SRC})
if(${AUDIODEAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE AUDIODEAL_SRC ${ROOT_DIRS}Module/AudioDeal/*.c)
list(APPEND ALL_SRC_FILES ${AUDIODEAL_SRC})
message("音频处理模块源码已加载")
endif()
if(${DEVICE_INFO_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE DEVICE_MESSAGE_SRC ${ROOT_DIRS}Module/DeviceInfo/*.c)
list(APPEND ALL_SRC_FILES ${DEVICE_MESSAGE_SRC})
message("设备信息模块源码已加载")
endif()
if(${GIMBAL_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE GIMBAL_SRC ${ROOT_DIRS}Module/Gimbal/*.c)
list(APPEND ALL_SRC_FILES ${GIMBAL_SRC})
message("云台模块源码已加载")
endif()
if(${IRCUT_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE MODULE_IRCUT_SRC ${ROOT_DIRS}Module/Ircut/*.c)
list(APPEND ALL_SRC_FILES ${MODULE_IRCUT_SRC})
message("引脚模块源码已加载")
endif()
if(${LIGHTING_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE LIGHTING_SRC ${ROOT_DIRS}Module/Lighting/*.c)
list(APPEND ALL_SRC_FILES ${LIGHTING_SRC})
message("光源模块源码已加载")
endif()
if(${MEDIA_PROC_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE MEDIA_PROC_SRC ${ROOT_DIRS}Module/MediaProc/*.c)
file(GLOB_RECURSE MEDIA_PROC_SRC_CPP ${ROOT_DIRS}Module/MediaProc/*.cpp)
list(APPEND ALL_SRC_FILES ${MEDIA_PROC_SRC})
list(APPEND ALL_SRC_FILES ${MEDIA_PROC_SRC_CPP})
message("媒体管理模块已加载")
endif()
if(${MEGAPHONE_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE MEGAPHONE_SRC ${ROOT_DIRS}Module/Megaphone/*.c)
list(APPEND ALL_SRC_FILES ${MEGAPHONE_SRC})
message("喊话器模块源码已加载")
endif()
if(${POWER_MANAGER_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE POWERMANAGER_SRC ${ROOT_DIRS}Module/PowerManager/*.c)
list(APPEND ALL_SRC_FILES ${POWERMANAGER_SRC})
message("电源模块已加载")
endif()
if(${UI_CONTROL_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE MODULE_UICONTROL_SRC ${ROOT_DIRS}Module/UI_control/*.c)
list(APPEND ALL_SRC_FILES ${MODULE_UICONTROL_SRC})
message("UI模块源码已加载")
endif()
if(${SIDE_LASER_MODULE} STREQUAL "VERSION_SWITCH_ON")
file(GLOB_RECURSE MODULE_SIDE_LASER_SRC ${ROOT_DIRS}Module/SideLaser/*.c)
list(APPEND ALL_SRC_FILES ${MODULE_SIDE_LASER_SRC})
message("侧边激光模块源码已加载")
endif()
file(GLOB_RECURSE MODULE_IMAGEPROCESSING_SRC ${ROOT_DIRS}Module/ImageProcessing/*.c)
file(GLOB_RECURSE MODULE_IMAGEPROCESSING_cpp_SRC ${ROOT_DIRS}Module/ImageProcessing/*.cpp)
# 头文件路径
include_directories(./application)
include_directories(${ROOT_DIRS}JZsdk_Common)
include_directories(${ROOT_DIRS}JZsdk_Config)
include_directories(${ROOT_DIRS}JZsdk_hal)
include_directories(${ROOT_DIRS}JZsdk_osal)
include_directories(${ROOT_DIRS}Module)
include_directories(${ROOT_DIRS}Module/Megaphone)
include_directories(${ROOT_DIRS}Module/Ircut)
include_directories(${ROOT_DIRS}Module/Ircut/H3_ircut/wiringPi)
include_directories(${ROOT_DIRS}Module/Gimbal)
include_directories(${ROOT_DIRS}Module/Lighting)
include_directories(${ROOT_DIRS}Module/UI_control)
include_directories(${ROOT_DIRS}Module/Camera)
include_directories(${ROOT_DIRS}Module/PowerManager)
include_directories(${ROOT_DIRS}Module/TestAPP)
include_directories(${ROOT_DIRS}Module/ImageProcessing)
include_directories(${ROOT_DIRS}Module/SerialManagement)
# 生成可执行文件
add_executable(
JZ_UART_APP
./application/main.c
${ALL_SRC_FILES}
${MODULE_IMAGEPROCESSING_SRC}
${MODULE_IMAGEPROCESSING_cpp_SRC}
)
include(${ROOT_DIRS}CmakeConfig/ModuleLoading.cmake)