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

# 海外版本 27行不能改动
set(firewarm_origin DOMESTIC_VERSION) 


# 指定源文件
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("\n滤波库:高通滤波\n")
    target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/directed_stopband_filtering/libAudioPlayer.so)
elseif(${filtering_type} STREQUAL "high_pass_filtering")
    message("\n滤波库:带阻滤波\n")
    target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/music/high_pass_filtering/libAudioPlayer.so)
else()
    message(FATAL_ERROR "Invalid filtering type")
endif()

if(${firewarm_origin} STREQUAL "OVERSEAS_VERSION")
	message("\n固件版本为海外版\n")
    target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/TTS/intl_tts/libportaudio.so.2)
    target_link_libraries(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/ModuleLib/TTS/intl_tts/libTTS_Player.so)

else()
	message("\n固件版本为国内版\n")
endif()

target_link_libraries(${PROJECT_NAME} 

	${CMAKE_CURRENT_LIST_DIR}/ModuleLib/TTS/libmsc.so
	${CMAKE_CURRENT_LIST_DIR}/ModuleLib/opus/libopus.so
)