CMakeLists.txt 4.9 KB
# 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)
	list(APPEND ALL_SRC_FILES ${MEDIA_PROC_SRC}) 
	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)