CMakeLists.txt
3.1 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
# cmake 最低版本要求 第三行名字不能动
cmake_minimum_required(VERSION 2.8)
project(JZ_U3S)
set(CMAKE_C_FLAGS "-pthread -std=gnu99 -lm -ldl -lstdc++")
set(CMAKE_CXX_FLAGS "-pthread -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_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(ROOT_DIRS "${CMAKE_CURRENT_LIST_DIR}/../")
message(STATUS "ROOT_DIRS: ${ROOT_DIRS}")
if (NOT USE_SYSTEM_ARCH)
add_definitions(-DSYSTEM_ARCH_LINUX)
endif ()
file(GLOB_RECURSE APP_SRC ${CMAKE_CURRENT_LIST_DIR}/application/*.cxx)
file(GLOB_RECURSE MODULE_LAMP_SRC ${CMAKE_CURRENT_LIST_DIR}/../../../../JZ_Module/lamp/*.c)
file(GLOB_RECURSE MODULE_MUSIC_SRC ${ROOT_DIRS}music/*.c)
file(GLOB_RECURSE MODULE_TTS_SRC ${ROOT_DIRS}TTS/*.c)
file(GLOB_RECURSE MODULE_WPI_SRC ${ROOT_DIRS}wiringPi/*.c)
file(GLOB_RECURSE MODULE_UTI_SRC ${ROOT_DIRS}utils/*.c)
#.h文件
include_directories(${ROOT_DIRS}include)
include_directories(${ROOT_DIRS}example)
include_directories(${ROOT_DIRS}TTS)
include_directories(${ROOT_DIRS}music)
include_directories(${ROOT_DIRS}wiringPi)
include_directories(${ROOT_DIRS}utils)
include_directories(${ROOT_DIRS}USB/include/libusb-1.0)
include_directories(${ROOT_DIRS}/../../../JZ_Module/lamp)
include_directories(${ROOT_DIRS}/../../../JZ_Module/opus)
include_directories(${ROOT_DIRS}/../../../JZsdk_Config)
# 添加链接库目录
link_directories(${ROOT_DIRS}lib)
# 工程输出目录
if (NOT EXECUTABLE_OUTPUT_PATH)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
endif ()
#到最顶路径
#可执行文件
add_executable(
${PROJECT_NAME}
${APP_SRC}
${MODULE_LAMP_SRC}
${MODULE_TTS_SRC}
${MODULE_MUSIC_SRC}
${MODULE_WPI_SRC}
${MODULE_UTI_SRC}
)
# 库文件路径
target_link_libraries(${PROJECT_NAME}
${ROOT_DIRS}lib/libpayloadSDK.so
${ROOT_DIRS}lib/libauHttp.so.0
${ROOT_DIRS}lib/libautelcore.so.0
${ROOT_DIRS}lib/libmodules.so.0
${ROOT_DIRS}lib/libAutelPBProto.so.2
${ROOT_DIRS}lib/libAutelPBProtocol.so.2
${ROOT_DIRS}lib/libyaml-cpp.so.0.7
${ROOT_DIRS}lib/libprotobuf-lite.so.32
${ROOT_DIRS}lib/libprotobuf.so.32
${ROOT_DIRS}lib/libprotoc.so.32
${ROOT_DIRS}lib/libuv.so.1
${ROOT_DIRS}/USB/libusb-1.0.so #usb动态库
${ROOT_DIRS}lib/libAudioPlayer.so
${ROOT_DIRS}/TTS/libmsc.so
${ROOT_DIRS}../../../JZ_Module/opus/libopus.so
# payloadSDK
# autelcore
# AutelPBProto
# AutelPBProtocol
# yaml-cpp
# protobuf
# protobuf-lite
# uv
)
# 设置编译器优化级别
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-O3 -DNDEBUG")