CMakeLists.txt 3.1 KB
# 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")